Tôi có một mô hình trong Django có một cái gì đó như thế này:Query cho một Dòng ManytoMany với Qua trong 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)
Ý tưởng được rằng sẽ có một tập hợp các chi phí liên quan với mỗi hoạt động và phân loại cặp. Phân loại giống như Sinh viên, Nhân viên, v.v.
Tôi biết rằng phần đó hoạt động đúng.
Sau đó, trong ứng dụng của tôi, tôi truy vấn cho một tập hợp các hoạt động với:
activities = Activity.objects.filter(...)
nào trả về một danh sách các hoạt động này. Tôi cần hiển thị trong mẫu của tôi danh sách Hoạt động với Phí của họ. Một cái gì đó như thế này:
Activity Name
Student Early Price - $4
Student Regular Price - $5
Staff Early Price - $6
Staff Regular Price - $8
Nhưng tôi không biết cách dễ dàng để có được thông tin này mà không có truy vấn cụ thể của đối tượng Phí cho mỗi cặp hoạt động/lớp học.
Tôi hy vọng điều này sẽ làm việc:
activity.fee.all()
Nhưng đó chỉ trả về đối tượng phân loại. Có cách nào để lấy Dữ liệu Đối tượng Phí cho Cặp thông qua các Hoạt động mà tôi đã truy vấn không?
Hoặc tôi đang làm điều này hoàn toàn sai?