【问题标题】:Django - Initial form field values not showingDjango - 初始表单字段值未显示
【发布时间】:2021-01-22 14:53:24
【问题描述】:

我正在尝试设置表单域的初始值。

我通过以下方式接近它:

forms.py:

class FilterGigsForm(forms.Form):

    field = forms.IntegerField(label="", required=False, initial=5)

    def __init__(self, *args, **kwargs):
        instance = kwargs.get('instance', None)
        kwargs.update(initial={
            'field': 5,
        })
        super().__init__(*args, **kwargs)
        self.fields['field'].initial = 5

views.py

class HomePage(FormMixin, TemplateView):
    template_name = 'index.html'
    model = MyModel
    form_class = MyForm
    
    def get(self, request, *args, **kwargs):
        form = MyForm(self.request.GET, initial={'field': 5,})
     ...
        return render(request, 'index.html', {"form": form, })

我已将表单字段加载到我的模板中,如下所示:

<div class="styling">
    {{ form.field|as_crispy_field }}
</div>

但是,这些方法都不起作用,并且在我加载/重新加载页面时没有显示初始值。

【问题讨论】:

  • 你这是干什么的:form = MyForm(initial={'field': 5,})
  • 是的,有效。删除 self.request.GET 部分是导致问题的原因。谢谢。
  • 没问题,我已经发布了答案,请考虑投票。

标签: python django forms django-forms django-views


【解决方案1】:

form = MyForm(initial={'field': 5,})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 2010-12-25
    相关资源
    最近更新 更多