我需要两个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