(警告:我是相當新的Django和MVC模型)屬性在模型 - 視圖設計
假設我在模型下面的類:
class Member(models.Model):
user = models.OneToOneField(User)
class Project(models.Model):
name = models.CharField(max_length=200)
class ProjectMember(models.Model):
unique_together = ('project', 'member')
project = models.ForeignKey(Project)
member = models.ForeignKey(Member)
現在,我想獲取成員的所有項目列表。所以我補充說:
@property
def projects(self):
return Project.objects.filter(projectmember__member=self)
但我也可以在視圖中添加此過濾器或建立額外的功能來做到這一點。有沒有任何指導?模型應該包含任何屬性?它使代碼可重用,但我可以通過額外的功能實現,這不會混淆模型。
我認爲你可以使用M2M,通過關係: https://開頭的文檔。 djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships 然後查找將非常簡單。 – Nikita
我知道ManyToManyField選項,但我的項目中還有其他字段,爲了使問題更容易閱讀,我刪除了這些字段。所以基本上我需要交叉引用表 - ProjectMember來容納其他位。 – Juliusz