Вы можете использовать ForeignKey
для создания набора запросов, объединяющего обе модели.Предположим, что ваши модели выглядят так (я переименовал ваше поле FK для ясности):
class Model1(models.Model):
field1 = models.Charfield()
field2 = models.Charfield()
class Model2(models.Model):
field3 = models.Charfield()
model1 = models.ForeignKey(Model1, related_name='model2s')
Скажем, вы хотели искать во всех Model2
s, которые имели field3
из 'foo' и были связаныдо Model1
с field1
из bar
.Вы можете сделать это так:
queryset = Model2.objects.filter(field3='foo', model1__field1='bar')
Вы также можете начать с Model1
, используя поле related_name
, автоматически созданное Django.(Существует способ, которым Django будет называть их по умолчанию, если вы не включите имя в ForeignKey
, но всегда лучше быть явным.)
Это вернет любой Model1
, который имеет field1
'bar' и подключен к any Model2
с field3
из 'foo'.
queryset = Model1.objects.filter(field1='bar', model2s__field3='foo')