m2m field' through'另一个包含两个相同字段的模型

时间:2014-07-30 13:09:41

标签: django django-models

基本的想法是,我想跟踪培训,并为每个培训课程提供一个名册。我还想跟踪进入名单中的每个人,因此只是一个表而不仅仅是培训中的会员模型的M2M。

所以,这就是我现在所拥有的:

class Training( models.Model ):
   name = models.CharField( max_length=100, db_index=True )
   date = models.DateField( db_index=True )
   roster = models.ManyToManyField( Member, through='TrainingRoster' )

class TrainingRoster( models.Model ):
   training = models.ForeignKey( Training )
   member = models.ForeignKey( Member )

   ## auto info
   entered_by = models.ForeignKey( Member, related_name='training_roster_entered_by' )
   entered_on = models.DateTimeField( auto_now_add = True )

问题是django不喜欢" roster = models.m2m(会员,通过=' TrainingRoster')因为TrainingRoster中有两个字段,其成员为ForeignKey 。我理解为什么它不开心,但是没有办法指定类似的东西:通过=' TrainingRoster.member'。这不起作用,但似乎应该这样。

[我会承认我想知道" enter_by"和"进入"字段是这些模型的最佳选择。我想跟踪谁输入每条信息,但可能日志表可能比在TrainingRoster表中有两个额外字段更好。但这是一个完全独立的问题。虽然会使这个问题更容易。 :-)]

0 个答案:

没有答案