Заполнитель на зависимом выпадающем фильтре

У меня есть фильтр django с зависимым выпадающим списком для фильтрации производителей и моделей автомобилей. Модели используют поле charfield и извлекают автомобили из записи в базе данных.

enter image description here

Я бы хотел, чтобы на уважаемых полях было написано manufacture и model.

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

фильтр

class CarFilterForm(forms.Form):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['model'].queryset = Post.objects.none()
        if 'model_manufacture_id' in self.data:
            try:
                model_manufacture_id = int(self.data.get('model_manufacture_id'))
                self.fields['model_id'].queryset = CarModels.objects.filter(model_manufacture_id=model_manufacture_id)

            except (ValueError, TypeError):
                pass
        
class carFilter(django_filters.FilterSet):

    class Meta: 
        model = Post
        fields = 'manufacture', 'model'
        form = CarFilterForm

html

<form method="get" id="AllCarsForm" data-cars-url="{% url 'ajax-allcars' %}">
{% render_field myFilter.form.manufacture class="cars-filter-widget" %}
{% render_field myFilter.form.model class="cars-filter-widget" %}
<button class="btn btn-primary" type="submit">Search</button>
</form>

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

Пример:

class Model(models.Model):
    field = models.CharField(max_length=25, choices=CHOICES,
        default=DEFAULT, blank=True)

Вы также можете сделать это в формах:

self.fields['field'].choices = [('', 'Placeholder Text')] + list(
            self.fields['field'].choices[1:])

Попробуйте установить empty_label для полей:

self.fields['your_field'].empty_label = 'My custom empty label'
Вернуться на верх