[英]Django: Including standard User table as foreign key in my models?
我正在設計一個Django 1.8應用程序,其中包含試驗和評估程序的概念。 我將有六個評估者,他們將使用Django管理員登錄並進行評估。
我希望每個審判都有兩名陪審員。 如何在models.py中使用Django User模型來確保評估者是Users,並且可以使用Users的全部功能進行管理?
現在我有了這個,其中評估者不是用戶,而只是普通模型:
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)
我希望評估者是“用戶”,以便我可以通過“用戶”表以常規方式管理他們,但是我不知道如何進行此更改。
他們可能不需要在標准User屬性之上的任何自定義字段。
(注意:我不需要管理員內部的全面權限管理,任何評估者都可以編輯試用版。)
更新:抱歉,這很難解釋! 我根本不在乎Django前端,只在乎管理員。 我希望用戶能夠登錄到管理員,查看他們作為主要評估者的所有試驗,並編輯這些試驗。 我不確定是否最好使用User模型執行此操作。
代替兩個外鍵,從Trail到用戶添加了許多關系。 以后,如果需要,可以將更多評估者添加到跟蹤中。
您可以像這樣:
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 = Trial.objects.get(id=give-trial-id)
user = User.objects.get(id=give-assessor-id)
trail.assessors.add(user)
您可以在此處獲取有關manytomany的更多信息。
我剛剛看到了您的UPDATE 。 任何登錄到admin的人都可以訪問所有模型的所有對象。 在您的情況下,所有登錄到admin的評估者都將有權訪問所有跟蹤,無論它們是否被分配。
如果要通過登錄用戶過濾django admin,請參考此問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.