如何使用django为我的案例设计模型?
这里有两个角色:培训师和受训者。培训师可能有多个学员。而每个学员可能只有一名培训师或没有培训师 这是我的模型:如何使用django为我的案例设计模型?,django,model,Django,Model,这里有两个角色:培训师和受训者。培训师可能有多个学员。而每个学员可能只有一名培训师或没有培训师 这是我的模型: class TrainerShip(models.Model): trainer = models.ForeignKey('Trainer') trainee = models.ForeignKey(User) request_date = models.DateTimeField(auto_now_add=True) accept_date = mod
class TrainerShip(models.Model):
trainer = models.ForeignKey('Trainer')
trainee = models.ForeignKey(User)
request_date = models.DateTimeField(auto_now_add=True)
accept_date = models.DateTimeField(auto_now_add=True)
expiration_date = models.DateTimeField(auto_now_add=True)
class Trainer(models.Model):
user = models.ForeignKey(User, unique=True)
trainee = models.ManyToManyField(User, through=TrainerShip)
introduction = models.TextField(max_length=500)
certification = models.TextField(max_length=300)
specialties = models.TextField(max_length=300)
contact = models.TextField(max_length=100)
active = models.BooleanField(default=False)
我在尝试创建db时遇到以下错误:
shen@shen-笔记本电脑:~/django/sutifang$./manage.py syncdb
错误:一个或多个模型未验证:
registration.trainer:字段“user”的访问者与相关m2m字段“user.trainer\u set”冲突。在“用户”的定义中添加相关的\u name参数。
registration.trainer:m2m领域“受训者”的访问者与相关领域“User.trainer\u set”冲突。在“培训生”的定义中添加相关的_name参数
有人有办法解决这个问题吗?有没有更好的方法来模拟这种关系?问题是外键建立了双向关系。这意味着您可以执行User.trainer_set以获取用户下的所有培训师模型,这意味着您有一个循环引用返回到用户数据库(获取培训师模型将获取其所有字段,其中一个字段是原始用户模型) 因此,要解决此问题,请向外键添加一个相关的名称参数以停止此循环依赖关系:
user = models.ForeignKey(User, unique=True, related_name='traineruser')
您可以将traineruser替换为数据库中没有表的内容。非常感谢。这是我第一次在这里提出问题。再次感谢!