我需要兩個Django模型:第一個與用戶,第二個與項目。如何製作兩個具有交叉關係的Django模型?
他們之間我需要與其他領域的多對多關係。
如何讓下面的代碼工作?
from django.db import models
class User(models.Model):
name = models.CharField('Name', max_length=50)
projects = models.ManyToManyField(Project, through='UserProjects')
def __str__(self):
return self.name
class Project(models.Model):
name = models.CharField('Name', max_length=50)
users = models.ManyToManyField(User, through='UserProjects')
def __str__(self):
return self.name
class UserProjects(models.Model):
user = models.ForeignKey(User)
project = models.ForeignKey(Project)
is_active = models.BooleanField('Active')
在結束User.projects應該返回項目指定用戶 並以同樣的方式Project.users應該返回用戶指定項目。
我知道 - 但需要清晰和漂亮的應用程序界面 – pga
@pga嗯,它不會與Django一起使用。如果它看到兩個M2M聲明,它認爲存在兩種不同的M2M關係。如果您正在討論關於反向關係的管理界面,則必須在設置[管理員選項]時添加它(https://docs.djangoproject.com/en/dev/ref/contrib/admin/#勞動與一對多一對多的模型) – spectras