1. 程式人生 > >django的form組件的插件相關參數和保留內容

django的form組件的插件相關參數和保留內容

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組件的插件相關參數和保留內容