Python Django表单不设置初始值
我想使用Python Django表单不设置初始值,python,django,django-forms,django-views,Python,Django,Django Forms,Django Views,我想使用def clean(self)在必要时引发验证错误。但是,在使用它之前,必须填充所有字段。因此,我在views.py中设置初始值,如下所示: offering = DirectOffering.objects.get(id=offering_id) current_user = InvestorProfile.objects.get(user=request.user) form = DirectInvestmentForm(request.POST or None, initial=
def clean(self)
在必要时引发验证错误。但是,在使用它之前,必须填充所有字段。因此,我在views.py中设置初始值,如下所示:
offering = DirectOffering.objects.get(id=offering_id)
current_user = InvestorProfile.objects.get(user=request.user)
form = DirectInvestmentForm(request.POST or None, initial={'offering': offering, 'user': current_user})
form.fields['user'].widget = forms.HiddenInput()
form.fields['offering'].widget = forms.HiddenInput()
if form.is_valid():
investment = form.save(commit=False)
investment.save()
但是,当我查看错误页面上的本地变量时,我看到:
cleaned_data{'providing':None,'quantity':12345678,'user':None}
数量是我输入的其他两个字段应该通过initial={}yes自动填充,因为offering_id和request.user为空,并且查询没有返回任何内容,您需要将offering_id和request.user.pk更改为
form=DirectInvestmentForm(request.POST或None,initial={'providing':providing_id,'user':request.user.pk})
但仍然存在相同的错误。发布您的总视图,并且html是整个视图,也是我的html。