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

时间:2020-06-27 01:54:43

标签: python django django-queryset

我的模型。py

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')

我的view.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
                        })

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

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

1 个答案:

答案 0 :(得分:0)

不确定要实现什么,但是如果pk是用户Model的pk,

if request.user.id== pk

表示当前登录的用户仅在查看其自己的页面和其他用户页面。 这应该在您对用户进行身份验证之后进行。

相关问题