4

这是我的模型,

class Age(models.Model):
    layer = models.CharField(max_length=50)
    order = models.PositiveIntegerField()
    ...
class Course(models.Model):
    target_age = models.ManyToManyField('Age')
    ...

如何获得包含特定年龄的课程查询集?
意见:

request_courses = Course.objects.filter(target_age ...
4

1 回答 1

18

你的问题有点含糊。首先,阅读有关跨关系查询的文档。

如果您想获得仅Age与具有特定字段值的课程相关的课程:

Course.objects.filter(target_age__FIELD=...)

其中 FIELD 是Age您要查询的模型中的字段。

或者,如果您有一个Age对象并且想要获取与特定Age对象实际相关的所有课程,您需要:

age = Age.objects.get(...)
courses = Course.objects.filter(target_age=age)

或者,如果您想获得与许多可能的至少之一相关的课程Age

ages = Age.objects.filter(...)
courses = Course.objects.filter(target_age__id__in=ages.values_list('id'))

编辑

最后一个例子是使用in查找

于 2012-04-06T01:10:33.350 回答