我需要两个 Django 模型:第一个是Users,第二个是Projects。
在它们之间我需要与附加字段的多对多关系。
如何使下面的代码工作?
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 应该为指定的 User 返回 Projects 同样,Project.users 应该为指定的Project 返回Users。
请您参考如下方法:
两边不用放m2m字段 Jussi 选择一个,Django 会自动为另一个方向创建反向关系。
