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=...)

Ageここで、FIELDは、クエリを実行するモデルのフィールドです。

または、Ageオブジェクトがあり、特定のオブジェクトに実際に関連するすべてのコースを取得する場合は、次のAgeものが必要です。

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

または、考えられるいくつかのコースの少なくとも1つに関連するコースを取得したい場合Age

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

編集

最後の例はルックアップを使用していますin

于 2012-04-06T01:10:33.350 に答える