基本的想法是,我想跟踪培训,并为每个培训课程提供一个名册。我还想跟踪谁进入名单中的每个人,因此只是一个表而不仅仅是培训中的会员模型的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表中有两个额外字段更好。但这是一个完全独立的问题。虽然会使这个问题更容易。 :-)]