簡體   English   中英

Django:在我的模型中是否包含標准User表作為外鍵?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM