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。