为什么我的表单标签不适用于 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 基于 model
和 fields
构造一个 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
.
中定义的表单
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 基于 model
和 fields
构造一个 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
.