Django FieldError: Неподдерживаемый поиск 'kategorie' для IntegerField или присоединение к полю не разрешено

У меня есть Django Table с Crispy Filter и я хотел бы фильтровать в таблице Data на основе Category. Но я получаю FieldError.

Я попытался определить поле фильтра таким образом в filters.py:

kategorie = django_filters.CharFilter(label="Kategorie", field_name="ucet__cislo__kategorie__jmeno", lookup_expr='icontains')

У меня следующая структура моделей в models.py:

class Data(models.Model):
    ucet = models.ForeignKey(Ucty, on_delete=models.CASCADE, null=True, blank=True)

class Ucty(models.Model):
    cislo = models.IntegerField("Účet", blank=True, null=True)

class Mustek(models.Model):
    ucet = models.ForeignKey(Ucty, on_delete=models.CASCADE)
    kategorie = models.ForeignKey(Kategorie, on_delete=models.CASCADE)

class Kategorie(models.Model):
    jmeno = models.CharField("Kategorie", max_length=20, blank=True, null=True)


Есть идеи, как исправить определение имени_поля в фильтре?

Поскольку cislo является IntegerField, вы не можете присоединиться к нему. Вы, вероятно, хотите присоединиться к Mustek в обратном порядке, так:

kategorie = django_filters.CharFilter(
    label='Kategorie',
    field_name='ucet__mustek__kategorie__jmeno',
    lookup_expr='icontains',
)
Вернуться на верх