首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:将标准用户表作为外键包含在我的模型中?

Django:将标准用户表作为外键包含在我的模型中?
EN

Stack Overflow用户
提问于 2015-10-27 04:57:47
回答 1查看 237关注 0票数 1

我正在设计一个Django 1.8应用程序,其中我有审判和陪审员的概念。我将有六个评审员,他们将使用Django管理登录和作出评估。

我希望每个审判都有两个附加的陪审员。如何使用models.py中的Django用户模型来确保评审员是用户,并且可以使用用户的全部功能进行管理?

现在我有一个评审员不是使用者,而是普通的模型:

代码语言:javascript
复制
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前端,只关心管理员。我希望用户能够登录到管理,查看所有的审判,他们是一个主要的评估者,并编辑这些试验。我不确定是否最好用用户模型来做这件事。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-27 05:57:30

而不是两个外键,而是添加一个从Trail到user的多个关系。以后,如果你想要的话,你可以给一条线索增加更多的评审员。

你可以这样做:

代码语言:javascript
复制
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")

你可以在审判中增加陪审员,例如:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33360228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档