django的form組件的插件相關參數和保留內容
阿新 • • 發佈:2018-03-06
form保留上次內容上節的常用字段,和參數,這節看看這些參數的具體使用
<form method="POST" enctype="multipart/form-data"> {% csrf_token %} {{ form.xxoo.label }} {{ form.xxoo.id_for_label }} {{ form.xxoo.label_tag }} {{ form.xxoo.errors }} <p>{{ form.user }} {{ form.user.errors }}</p> <input type="submit" /> </form>
eg:這裏可以在Get的時候,把form表單實例化後,在html裏面來使用,obj=LoginForm(),然後上面的{{ obj.xxoo.label }}
裏面的xxoo代表的是form裏面的字段,如上節的username,
如果按照上面的一個一個的寫,去生成html標簽,很麻煩,,下面可以通過as_p來生成
通過這個,會自動把後臺的各種參數自動生成一個html標簽,默認是input,修改可以通過widget,需要通過forms導入widgets
保留上次的內容,
其實上面的這些生成html標簽,是這個保留上次內容的一部分功能。
第一種方法通過form表達的方式
在用戶get的時候,就把用戶的form表單實例化,並且傳到前端
def testform(request):
if request.method == "GET":
obj = TestForm()
return render(request,‘testform.html‘,{‘obj‘:obj})
當post提交後,再次通過obj驗證的時候,form表達式有數據的,再次返回前端的時候obj裏面是有數據的了
else: obj = TestForm(request.POST) if obj.is_valid(): print(obj.cleaned_data) else: print(obj.errors) return render(request,‘testform.html‘,{‘obj‘:obj})#此時這個obj裏面是有上次提交的數據的
如果後臺通過form表達的方式來獲取的數據,前端應該這麽寫了
<form action="/testform/" method="post">
{% csrf_token %}
<p> {{ obj.t1 }} {{ obj.errors.t1.0 }}</p>
<p> {{ obj.t2 }} {{ obj.errors.t2.0 }}</p>
<input type="submit" value="提交">
</form>
功能
django的form組件的插件相關參數和保留內容