Django如何仅允许特定用户查看页面

2024-09-28 05:15:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我的模特

class Utilizador(AbstractBaseUser):
   id = models.AutoField(db_column='ID', primary_key=True)
   departamentoid = models.ForeignKey(Departamento, models.DO_NOTHING, db_column='DepartamentoID', blank=True, null=True)
   email = models.CharField(db_column='Email', max_length=255, blank=True, null=True, unique=True)
   nome = models.CharField(db_column='Nome', max_length=255, blank=True, null=True)

class Inscrio(models.Model):
   id = models.AutoField(db_column='ID', primary_key=True)
   utilizadorid = models.ForeignKey('Utilizador', models.DO_NOTHING, db_column='UtilizadorID')
   participanteinfoid = models.ForeignKey('Participanteinfo', models.DO_NOTHING, db_column='ParticipanteinfoID')

我的观点.py

def ver_col(request, pk):
   user = Utilizador.objects.get(id=request.user.id)
   insc = Inscrio.objects.get(utilizadorid=request.user.id)

   if  request.user.is_authenticated:
       if request.user.id==insc.utilizadorid.id:
           return render(request, 'main/ver_col.html', 
                        {
                         "insc": insc
                        })

因此,我希望用户看到这个“veru col.html”,但他们只允许输入与当前登录的用户(request.user.id或request.user)关联的UtilizadorID(表Inscrio的)页面

基本上,我希望所有用户都能看到模板,但只能看到他们自己的数据


Tags: idtruedbmodelsrequestcolumndonull
1条回答
网友
1楼 · 发布于 2024-09-28 05:15:38

不确定你想要实现什么,但如果pk是用户模型的pk

if request.user.id== pk

这意味着当前登录的用户只查看自己的页面和其他一些用户的页面。 这应该在您对用户进行身份验证之后进行

相关问题 更多 >

    热门问题