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',
)