我正在设计一个Django 1.8应用程序,其中我有审判和陪审员的概念。我将有六个评审员,他们将使用Django管理登录和作出评估。
我希望每个审判都有两个附加的陪审员。如何使用models.py中的Django用户模型来确保评审员是用户,并且可以使用用户的全部功能进行管理?
现在我有一个评审员不是使用者,而是普通的模型:
class Assessor(models.Model):
name = models.CharField(max_length=200)
class Trial(models.Model):
title = models.CharField(max_length=800)
publication_date = models.DateField()
first_assessor = models.ForeignKey(assessor)
second_assessor = models.ForeignKey(assessor)我希望评审员是用户,这样我就可以按照通常的方式通过用户表来管理他们,但是我不知道如何进行这个更改。
它们可能不需要在标准用户属性之上的任何自定义字段。
(注意:我不需要管理员内部的全面权限管理,任何评审员都可以编辑审判。)
更新:抱歉,这是很难解释的!我根本不关心Django前端,只关心管理员。我希望用户能够登录到管理,查看所有的审判,他们是一个主要的评估者,并编辑这些试验。我不确定是否最好用用户模型来做这件事。
发布于 2015-10-27 05:57:30
而不是两个外键,而是添加一个从Trail到user的多个关系。以后,如果你想要的话,你可以给一条线索增加更多的评审员。
你可以这样做:
from django.contrib.auth.models import User
class Trial(models.Model):
title = models.CharField(max_length=800)
publication_date = models.DateField()
assessors = models.ManyToManyField(User,related_name="trials")你可以在审判中增加陪审员,例如:
trial = Trial.objects.get(id=give-trial-id)
user = User.objects.get(id=give-assessor-id)
trail.assessors.add(user)您可以获得更多关于多个here的信息。
我刚看到你的更新。任何登录到admin的人都可以访问所有模型的所有对象。在你的例子中,所有登录到管理员的评审员都可以访问所有的路径,不管他们是否被分配给它。
如果您希望通过登录用户来过滤django管理,那么请参考this question
https://stackoverflow.com/questions/33360228
复制相似问题