Django脆皮表单未显示Django-Multislelectfield所需的错误

时间:2018-12-24 08:56:08

标签: python django django-crispy-forms django-validation

我有一个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代码:

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-forms 1.7.2(带有bootstrap4包)

我到目前为止所做的事情:

  • 试图将“必填”添加到“模型字段”(结果:django-multiselect未获取必填属性)
  • 使用清晰的表单布局和全局对象(添加属性等)
  • 试图手动添加必填字段(self.fields['status'].required = True
我发现上述解决方案均无效。 谢谢您的帮助

0 个答案:

没有答案