[英]Additional field in django form
我正在Django中創建一個表單。 當我發布數據時,數據會自然發送。 我的問題是,我想將一個額外的屬性傳遞給POST數據,這不是任何表單字段,而是另外一個。
這樣我以后可以做類似(偽代碼)的事情:
def form_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
extra_field = form.cleaned_data['extra_field']
#or maybe
extra_field = form.extra_field
#...
else:
form = MyForm()
#...
任何可能有效的方法是將一個額外的屬性(不是字段而是一個簡單的變量)傳遞給POST請求。
如果要將任何內容作為來自HTML的POST請求傳遞給django,則可以使用隱藏輸入
<input type="hidden" name="foo" value="bar" />
print request.POST['foo'] # out: bar
如果要從視圖中修改python中的POST字典,請copy()
以使其可變。
mutable_post = request.POST.copy()
mutable_post['foo'] = 'bar'
form = MyForm(mutable_post)
在表單的clean
方法中,您可以向form.cleaned_data['extra'] = 'monkey butter!'
添加新信息,例如: form.cleaned_data['extra'] = 'monkey butter!'
,如果是form.is_valid()
,那么你有額外的信息。
您最終要做的將取決於您的額外信息是什么,以及您可以在哪里獲得。
有幾種方法可以做到這一點。 一,是否可以將其添加到模板中。
<form action="." method="post">{% csrf_token %}
{{ form.as_p }}
<input type="hidden" name="extra_field" value="{{ extra }}" />
<input type="submit" value="submit" />
</form>
另一種方法是將字段添加到表單類,但使用隱藏的窗口小部件 。 我不確定這是不是你想要的。 如果是,只需添加評論,我就可以進一步解釋這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.