繁体   English   中英

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

[英]Django how to only allow specific users to see a page

我的模型.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')

我的观点.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”,但他们只被允许输入与当前登录的用户相关联的 UtilizadorID(Inscrio 表)的页面(request.user.id 或 request.user )。

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

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

if request.user.id== pk

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM