为什么我的表单标签不适用于 UpdateView?

why my form labels donesnt work with UpdateView?

django 标签不适用于 UpdateView,但来自另一个模型和视图的标签可以完美工作。

forms.py

    class Meta:
        model = Vacancy
        fields = "__all__"
        labels = {
                  'title': 'Название',
                  'skills': 'Требования',
                  'description': 'Описание',
                  'salary_min': 'Зарплата от',
                  'salary_max': 'Зарплата до',
                  }

views.py

class VacancyEdit(UpdateView):
    model = Vacancy
    template_name = 'vacancies/vacancy-edit.html'
    fields = ['title', 'skills', 'description', 'salary_min', 'salary_max']
    pk_url_kwarg = 'vacancy_id'
    success_url = '/'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['Applications'] = Application.objects.filter(vacancy_id=self.kwargs['vacancy_id'])
        return context

你没有使用你的表单,你让 Django 基于 modelfields 构造一个 ModelForm。您因此定义了一个表格,但您从未使用那个表格。 UpdateView 使用了它自己构建的一个。

您可以使用 form_class=… [Django-doc] 属性指定表单:

class VacancyEdit(UpdateView):
    model = Vacancy
    <b>form_class = <i>VacancyForm</i></b>
    template_name = 'vacancies/vacancy-edit.html'
    pk_url_kwarg = 'vacancy_id'
    success_url = '/'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['Applications'] = Application.objects.filter(vacancy_id=self.kwargs['vacancy_id'])
        return context

其中 VacancyForm 是您在 forms.py.

中定义的表单