У меня есть Crispy Form и простой CreateView, в котором есть несколько полей.
все проверки полей работают правильно, но в хрустящей форме не отображаются ошибки проверки, вызванные Django-Multiselectfield. Я вижу ошибки в шаблоне с {{ form.errors }}
, которыевозвращает:
available_guarantee
- This field is required.
deal_type
- This field is required.
status
- This field is required.
MyForm Code:
class ProjectForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ProjectForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_method = 'POST'
self.helper.layout = Layout(
Fieldset(
_('About the Project'),
'name',
'location',
'location_type',
'sector',
Div('status', css_class='with-checkbox'),
'revenue_generation_year',
'total_cost',
'previous_fund',
),
Fieldset(
_('Transaction'),
'fundraising_goal',
Div('deal_type', css_class='with-checkbox'),
'payback_duration',
'collateral_rate',
Div('offered_stake', css_class='with-checkbox'),
Div('available_guarantee', css_class='with-checkbox'),
),
Fieldset(
_('Financial Details'),
'adscr',
'debt_equity_ratio',
'irr',
),
Fieldset(
_('About You'),
'owner_role',
Div('have_mandate', css_class='with-checkbox'),
),
Fieldset(
'',
'description',
),
Div(
FormActions(
Submit('save', _('Save changes'), css_class='btn-primary')), css_class='form-actions'))
class Meta:
model = Project
fields = '__all__'
ProjectCreateView:
class ProjectCreateView(LoginRequiredMixin, CreateView):
model = Project
form_class = ProjectForm
def get_success_url(self):
return reverse('accounts:user-projects')
def form_valid(self, form):
form.instance.owner = self.request.user
form.instance.state = Project.DRAFT_STATE
form.instance.language = get_language()
return super(ProjectCreateView, self).form_valid(form)
Версии :
- Django 2.0
- django-multiselectfield 0.1.5
- django-crispy-формы 1.7.2 (с пакетом bootstrap4)
вещей, которые я делал до сих пор:
- Попытка добавить Обязательный в поле модели (результат: django-multiselect не получает обязательный атрибут)
- играл с хрустящим макетом формы и глобальными объектами (добавление атрибутов и т. д.)
- попытался вручную добавить обязательное поле (
self.fields['status'].required = True
)
. Ни одно из указанных выше решений не сработало.Спасибо за вашу помощь