Django, как фильтровать объекты в Queryset - PullRequest
0 голосов
/ 08 февраля 2019

Я знаю, что обычный способ фильтрации элементов в QuerySet выглядит примерно так:

class GameAPIListView(ListAPIView):
    serializer_class = GameSerializer
    def get_queryset(self):
        data = Game.objects.filter(name="Football")
        return data

Что если у меня есть модель, которая выглядит следующим образом:

{
    "category_id": {
        "parent_id": {
            "name": "Sports",
            "category_id": "bf14aab0-dc76-4145-a130-246784d1efc1",
            "parent_id": null
        },
        "name": "Football",
        "category_id": "b6e59886-e834-4612-abc7-c32bd0e2af35"
    },
    "name": "Play Football",
}

{
    "category_id": {
        "parent_id": {
            "name": "Sports",
            "category_id": "bf14aab0-dc76-4145-a130-246784d1efc1",
            "parent_id": null
        },
        "name": "Basketball",
        "category_id": "b6e59886-e834-4612-abc7-c32bd0e2af35"
    },
    "name": "Play Basketall",
}

{
    "category_id": {
        "parent_id": {
            "name": "Poker",
            "category_id": "bf14aab0-dc76-4145-a130-246784d1efc1",
            "parent_id": null
        },
        "name": "blackjack",
        "category_id": "b6e59886-e834-4612-abc7-c32bd0e2af35"
    },
    "name": "Play blackjack",
}

И яхотел бы получить все элементы, чье имя parent_id - Sports.В этом случае я получу Футбол и Баскетбол.

Я пробовал что-то вроде

data = Game.objects.filter(category_id.parent_id.name = "Sports")

Но это не сработало.Может кто-нибудь показать мне правильный способ сделать это?Большое спасибо!

1 Ответ

0 голосов
/ 08 февраля 2019

Если вы добавите код модели, вы можете получить более точный ответ.

Почему бы вам не попробовать это.

data = Game.objects.filter(category__parent__name = "Sports")
...