我一直在尝试为我想要实现的目标提出解决方案。作为教我自己django的一部分,我正在努力为我的武术俱乐部创建一个俱乐部会员网站。作为其中一个应用程序的一部分,我提出了两类模型;会员和学校。
我们的想法是让会员通过ForeignKey参考他们所属的学校,并让学校参考会员以确定教师。教师只是一个普通会员,有一个BooleanField,用于识别他们是否是教练。
我只是在遇到问题之后不断遇到问题,我有点一个接一个地解决问题,但我想知道我首先做的是最有效的方法。
以下是目前成员模型的部分内容:
instructor = models.BooleanField('Instructor?', default=False)
school = models.ForeignKey('School')
这就是学校课程的样子:
class School(models.Model):
SCHOOL_CHOICES = (
('RED', 'Redruth - Centre of Excellence'),
('FAL', 'Falmouth - FXU'),
('MEV', 'Mevagissey'),
)
name = models.CharField(max_length=3, choices=SCHOOL_CHOICES, default='RED')
instructors = models.ForeignKey('Student', related_name='instructors', blank=True, null=True)
我必须将related_name添加到教师ForeignKey中,因为没有它会引发错误。我也尝试在成员模型中向学校的ForeignKey添加一个to_field,目前它只是显示了三个“学校对象”副本,但这似乎没有改变它(编辑:用 unicode修复它定义)。
我这样做的方式(两个类用ForeignKeys互相引用)是做到这一点的最佳方法,还是我应该做些什么呢?
抱歉这么模糊:/
答案 0 :(得分:1)
由于您在Member
模型上标记了教师,因此您无需在School
模型上使用其他关系来识别它们。相反,如果你想获得教师,你可以做一个特定的学校:
instructors = Members.objects.filter(instructor=True, school=my_school)