Django Rest Framework - SearchFilter

Мне нужно попытаться заставить SearchFilter работать для полей внутри набора внутри другого набора.

class Fight(models.Model):
    event = models.ForeignKey(Event, on_delete=models.CASCADE, related_name="fights")


class FighterStats(models.Model):
    fight = models.ForeignKey(Fight, on_delete=models.CASCADE, related_name="fighters")
    fighter = models.ForeignKey(Fighter, on_delete=models.CASCADE, null=True)


class EventSearchFilter(filters.SearchFilter):
    def get_search_fields(self, view, request):
        field_names = {
            "name": "name",
            "venue": "location__venue",
            "fighters": "fights__fighters__fighter__first_name__name"
        }

У меня нет проблем с тем, чтобы заставить работать внешние ключи, но мне бы пригодилась помощь с внешними наборами. Я удалил несвязанные поля/код из приведенного выше текста.

Оказалось, что я правильно ссылался на поля, проблема была в том, что все мои поля истребителя были нулевыми, что было вызвано этой строкой.

fighter_obj = Fighter.objects.filter(fighter_url=fighter_url).first()

Исправлено путем изменения fighter_url на нижний регистр перед фильтрацией. Урок усвоен: фильтр чувствителен к регистру.

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