Django-filter Как изменить заполнитель для замены [недопустимое имя]?

Я создаю фильтр для поиска в нескольких полях (у меня должно быть только одно поле поиска) следующим образом:

класс myFilter(django_filters.FilterSet): full_search = django_filters.CharFilter(name='full_search', method='search_by_full_search')

def search_by_full_search(self, qs, name, value):
    for term in value.split():
        qs = qs.filter(Q(serial__icontains=term) | Q(id__icontains=term) | Q(name__icontains=term))
    return qs

class Meta:
    model = myModel
    fields = ['full_search', ]

Но в html заполнитель показывает мою хитрость!

<input type="text" name="full_search" class="form-control" placeholder="[invalid name]" title="" id="id_full_search">

Можно ли изменить на что-то другое?


person Michel MARTIN    schedule 12.04.2018    source источник


Ответы (2)


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

full_search = django_filters.CharFilter(method='search_by_full_search', label='Recherche') # change label field to reflect what the filter name should be

class Meta:
   model = myModel
   fields = ['full_search', ]

def search_by_full_search(self, qs, name, value):
    for term in value.split():
      qs = qs.filter(Q(serial__icontains=term) | Q(id__icontains=term) | 
      Q(name__icontains=term))
    return qs

Вот как фильтр будет отображаться в API для просмотра

person Angela    schedule 05.03.2019

Наконец, я сделал это с JQuery:

$('#id_full_search').attr("placeholder", "Recherche")
person Michel MARTIN    schedule 13.04.2018