在我的表單視圖中,我想知道如果我不在下面的代碼中添加product_form.save方法會怎樣,如果我添加它會怎樣:
def form_valid(self, form):
product_form = form.save(commit=False)
product_form.user = self.request.user
product_form.save() # what if I delete this?
return super().form_valid(form)
uj5u.com熱心網友回復:
你在什么觀點上使用這個?如果它是[Django-doc]或[Django-doc],那很好。對于(簡單)[Django-doc],不是因為 a不保存表單。CreateView UpdateView FormView FormView
但是,您不需要保存表單commit=False來檢索實體。設定用戶的簡單單行是:
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import CreateView
class MyCreateView(LoginRequiredMixin, CreateView):
# …
def form_valid(self, form):
form.instance.user = self.request.user
return super().form_valid(form)
product_form中的名稱product_form = form.save(commit=False)也有些誤導:該.save()方法不回傳 a Form,而是一個Product物件,因此它是 a Product。但是您不需要將該產品保存在資料庫中,因為CreateViewandUpdateView將呼叫.save()表單的函式來保存模型以及表單中指定的多對多關系。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/471286.html
標籤:Python django 形式 验证 django-forms
