【发布时间】: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