1
我有這種情況:Django - 如何通過UpdateView將對象傳遞給ModelForm?
要編輯klient,UpdateView
用於:
url(r'^klient_change/(?P<pk>\d+)/$', KlientUpdateView.as_view(), name='url_klient_change'),
更新視圖需要更新對象的關懷,它採用KlientUpdateForm
class KlientUpdateView(UpdateView):
form_class = KlientUpdateForm
model = Klient
template_name = 'forms/klient_zmenit.html'
問題是,我需要更新現有的對象使用我自己的保存方法,它得到klient object
和做更多的事情(我的保存方法是在這個例子中完成,它做了很多)。
class KlientUpdateForm(ModelForm):
class Meta:
model = Klient
# This method creates and saves a database object from the data bound to the form.
def save(self):
#self.cleaned_data obsahuje data z formulare
data = self.cleaned_data
klient = get_object_or_404(Klient, klient_id =self.request.pk)
Klient.objects.filter(klient_id = self.request.pk).update(nazev=data['nazev'], telefon=data['telefon'],)
return klient
我怎樣才能獲得具有modelForm
從URL PK particualr對象?是否有可能做到這一點? ModelForm
不知道任何關於request
。我的想法是得到updateview
這個對象,這是可能的,但我不知道,如何將它傳遞給save method
那modelform
。
是的!你是對的。 'self.instance.pk'返回所需的主鍵! – Boun