2012-11-26 35 views
0

綁定數據我有Django的形式,但在我的HTML我添加了一個額外的輸入字段(在HTML頁面中直接加入),我可以訪問它使用request.POST.get在(「extra_field_name」)我的Django意見。顯示HTML形式使用Django

如果form.is_valid()與在HTML 但與額外添加的字段(在HTML頁面中直接添加)

哪有空值顯示的數據是假的,我可以得到形式HTML我在驗證樣本後獲取這個新添加的額外html字段的有界形式數據。

請提供您的建議?

回答

1

查看:

html_added_field = '' 
error_added_field = None 
if request.method == 'POST': 
    html_added_field = request.POST.get('extra_field_name')\ 
    if form.is_valid(): 
     pass 
    else: 
     error_added_field = _('Error') 

context = {'html_added_field':html_added_field,'error_added_field':error_added_field} 

HTML:

<input type="text" value="{{ html_added_field }}" />{% if error_added_field %}<div class="error">{{ error_added_field }}</div>{% endif %} 
0

本文由貝內特可以幫助你。

http://www.b-list.org/weblog/2008/nov/09/dynamic-forms/

簡單地說,你必須重寫表單的__init__方法,將有新的「extra_field_name」。這些字段包含在self.fields列表中,所以這樣做:

self.fields['extra_field_name'] = forms.CharField(put_here_definitions_for_your_field) 

應該做的伎倆。

0

說實話,最好的辦法是爲你的基地Django的形式來處理額外的場。不在HTML中使用額外的字段。但是如果你不能/不想,因爲xbello狀態,在http://www.b-list.org/weblog/2008/nov/09/dynamic-forms/你有處理動態領域的各種技巧。

我發現更強大的使用形式工廠方法。一個生成動態表單的函數,爲更多未來更改做好準備。不過,你必須決定:-)

最好的方法