Django:使用传递变量设置初始值

时间:2017-05-30 10:43:55

标签: django django-forms django-views

我正在使用Django并希望从视图中传递变量以在表单中设置初始值。

我有以下观点:

def change_chosenCharity(request):
    charityid=12
    form = updateCharity(charityid)
    return render(request, 'meta/changechosencharity.html', {'form': form})

使用以下表格:

class updateCharity(BootstrapForm):

    currentCharities = forms.ModelChoiceField(queryset=Charity.objects.filter(enabled=1), empty_label=None,widget=forms.Select(attrs={"class": "select-format"}))
    currentCharities.label = "Charity Options"
    currentCharities.intial = charityid

产生以下错误:name 'charityid' is not defined

我知道它没有在表单中定义,但我尝试了各种选项来定义它们但没有成功。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您不在表单定义中声明它;这是没有意义的,因为你需要动态设置它。

相反,在视图中实例化表单时执行此操作:

form = updateCharity(initial={'currentCharities': charityid})