2017-01-10 2 views
0

У меня есть следующие отношения, в моих данных:объектов фильтров, которые существуют в ключевых иностранных отношениях

модель:

class Course(models.Model): 
    name = models.CharField(max_length=200) 
    concepts = models.ManyToManyField(Concept, related_name='course_concepts') 

class Concept(models.Model): 
    name = models.CharField(max_length=120) 

Но я хотел бы построить множество запросов из концепций, которые принадлежат конкретный курс (course_x).

Я попытался следующие, но постоянно получают эталонные ошибки:

Concept.objects.filter(self__in=course_x) 

как таковой, что правильный способ запроса только объекты, которые соответствуют внешнему ключу для конкретного объекта?

ответ

1

Вот как вы можете фильтровать Concept объектов, которые относятся к Course с определенным name:

concepts = Concept.objects.filter(course__name="Your course name") 

Или, вы можете отфильтровать понятий, относящихся к QuerySet курсов:

concepts = Concept.objects.filter(course__name__icontains="mathematics")