Запрос объектов RelatedManager - PullRequest
0 голосов
/ 09 октября 2018

У меня есть такие модели, как

class Model1(models.Model):
    f1 = models.DateField(null=True, blank=True)
    f2 = models.CharField(max_length=100,null=True, blank=True)
    f3 = models.CharField(max_length=100,null=True, blank=True)

class Model2(models.Model):
    x = models.ForeignKey(Model1)
    f4 = models.CharField(null=True, blank=True)
    f5 = models.CharField(max_length=100,null=True, blank=True)

и мои admin.py показания

class Model2Inline(admin.TabularInline):
    model = Model2
    search_fields = ('f5',)
    extra = 1
class Model1Admin(admin.ModelAdmin):
    list_display = ('f1', 'f2')
    search_fields = ['f1']
    inlines = [Model2Inline]

Я хочу отфильтровать Model1 на основе определенных значений поля f4

Нечто подобное

results = Model1.objects.filter(where f4 = "some_specific_value")

, предназначенное для получения набора запросов, содержащего экземпляры Model1, в которых встроенным Model2 будет присвоено f4 значение some_specific_value

Спасибо!

1 Ответ

0 голосов
/ 09 октября 2018

это должно работать (отредактировано, спасибо @DanielRoseman за указание на то, что мне не хватало):

results = Model1.objects.filter(model2_set__f4="some_specific_value")

Вы также можете дать атрибуту ForeignKey ключевое слово related_name, чтобы вы моглиможет ссылаться на Model2 из Model1 по более понятному имени, чем model2_set.

См. документацию по https://docs.djangoproject.com/en/2.1/topics/db/queries/#related-objects

...