Django как искать одну модель на основе нескольких внешних ключей?

Я пытаюсь построить фильтр на основе имени модели и нескольких внешних ключей.

class Foo(models.Model):
    name = models.Charfield()

class Bar(models.Model):
    name = models.ForeignKey(Foo)

Foo могут иметь одинаковые имена, но разные Bars.

Я хочу найти конкретное Foo на основе Bars.

Пока что я могу разобрать пользовательский ввод и создать список ["foo.name", "bar.name", "bar.name"]

Как мне отфильтровать товар на основе этого конкретного Foo? и с трейлинг-барами?

# pseudocode process
foo = foo.objects.filter(name__contains=list[0] and foo.objects.filter(bar_name__in=[list]

Я думаю, что если вы зададите имя related_name для ForeignKey, вы сможете искать из Foo, используя его в качестве поля.

Так что если вы сделаете models.ForeignKey(Foo, related_name="backlink"), то у Foo будет поле обратной ссылки, по которой можно искать.

Посмотрите здесь, может быть, это поможет.

https://docs.djangoproject.com/en/4.0/ref/models/fields/#django.db.models.ForeignKey.related_name

Вернуться на верх