我在Django中有一个类似的模型:
- class Classification(models.Model):
- name = models.CharField(choices=class_choices)
- ...
- class Activity(models.Model):
- name = models.CharField(max_length=300)
- fee = models.ManyToManyField(Classification,through='Fee')
- ...
- class Fee(models.Model):
- activity = models.ForeignKey(Activity)
- class = models.ForeignKey(Classification)
- early_fee = models.IntegerField(decimal_places=2,max_digits=10)
- regular_fee = models.IntegerField(decimal_places=2,max_digits=10)
这个想法是每个活动和分类对都会有一系列费用.分类就像学生,员工等.
我知道那部分是正确的.
然后在我的应用程序中,我查询一组活动:
- activities = Activity.objects.filter(...)
返回活动列表.我需要在我的模板中显示活动列表及其费用.像这样的东西:
- Activity Name
- Student Early Price - $4
- Student Regular Price - $5
- Staff Early Price - $6
- Staff Regular Price - $8
但是,如果没有针对每个活动/类对的Fees对象的特定获取查询,我不知道获取此信息的简单方法.
我希望这会奏效:
- activity.fee.all()
但这只是返回分类对象.有没有办法通过我已经查询的活动获得对的费用对象数据?
或者我这样做完全错了?