[英]Django - generic UpdateView works in one form but not in other
我正在為我的學校項目開發一個 Web 應用程序,我選擇了Django
,網上找到的所有教程都非常全面,我設法解決了我遇到的問題。
我有以下class based view
試圖更新一個對象:
views.py
class MyPostUpdateView(UpdateView):
model = Post
fields = ('VideoURL', 'MainDescription')
template_name = 'myapp/editpost.html'
然后,我在我的urls.py
導入:
path('profile/account/my-posts/<int:pk>/edit/', MyPostUpdateView.as_view(),
name='myapp-editpost')
然后,在我的HTML
模板中,我有幾個<form>
元素,但都屬於同一個<div>
元素:
<div class="row">
<div class="col-12 col-lg-7">
<form method='post' class="card shadow-soft border p-4 mb-4">
{% csrf_token %}
<h5 class="mb-4">Form1</h5>
<div class="form-group">
<label for="MainDescription">Titlu</label> {{form.MainDescription|add_class:"form-control shadow-soft"}}
</div>
<div class="row">
<div class="col">
<button class="btn btn-primary btn-dark mt-2 animate-up-2" type="submit">Update form
1</button>
</div>
</div>
</form>
</div>
<div class="col-12 col-lg-5">
<form method='post' class="card shadow-soft border p-4 mb-4">
{% csrf_token %}
<h5 class="mb-4">Form2</h5>
<div class="form-group">
<label for="VideoURL">Video URL:</label> {{form.VideoURL|add_class:"form-control shadow-soft"}}
</div>
<div class="row">
<div class="col">
<button class="btn btn-primary btn-dark mt-2 animate-up-2 text-right" type="submit">Update form 2</button>
</div>
</div>
</form>
</div>
</div>
行為如下:如果我保留上述HTML
代碼,我將無法更新這兩個字段中的任何一個。 但是,如果我將這兩個字段放在同一個<form>
元素中,它會起作用:
<div class="row">
<div class="col-12 col-lg-7">
<form method='post' class="card shadow-soft border p-4 mb-4">
{% csrf_token %}
<h5 class="mb-4">Form1</h5>
<div class="form-group">
<label for="VideoURL">Video URL:</label> {{form.VideoURL|add_class:"form-control shadow-soft"}}
</div>
<div class="form-group">
<label for="MainDescription">Titlu</label> {{form.MainDescription|add_class:"form-control shadow-soft"}}
</div>
<div class="row">
<div class="col">
<button class="btn btn-primary btn-dark mt-2 animate-up-2" type="submit">Update form
1</button>
</div>
</div>
</form>
</div>
<div class="col-12 col-lg-5">
<form method='post' class="card shadow-soft border p-4 mb-4">
{% csrf_token %}
<h5 class="mb-4">Form2</h5>
<div class="form-group">
<label for="VideoURL">Video URL:</label> {{form.VideoURL|add_class:"form-control shadow-soft"}}
</div>
<div class="form-group">
<label for="MainDescription">Titlu</label> {{form.MainDescription|add_class:"form-control shadow-soft"}}
</div>
<div class="row">
<div class="col">
<button class="btn btn-primary btn-dark mt-2 animate-up-2 text-right" type="submit">Update form 2</button>
</div>
</div>
</form>
</div>
</div>
誰能給我解釋一下? 我問是因為我想將UpdateView
功能擴展到屬於同一模型的其他字段。 謝謝!
在您的第一個代碼塊中,您將兩個字段放入了兩種不同的形式。 當您提交表單時,只會使用已提交的表單。
所以這就像在第一個桶里放 2 個蘋果,在第二個桶里放 2 個橙子。
想象一下,你把蘋果和橙子的數量分別改為 1 和 1。我要求你只帶一桶(你只能帶一桶)。 發生什么了? 蘋果的數量是 1,但我不知道您是否更改了第二個桶中的橙子數量。
把蘋果和橙子放在一個桶里,這樣當你把桶拿來的時候,我就能清楚地知道換了多少蘋果和橙子。
蘋果 = videourl 的內容
橙子 = 主要描述
桶 = 形式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.