Django-如何通过UpdateView将对象传递给ModelForm?
我有这样的情况: 要编辑klient,请使用Django-如何通过UpdateView将对象传递给ModelForm?,django,django-models,Django,Django Models,我有这样的情况: 要编辑klient,请使用UpdateView: url(r'^klient\u change/(?p\d+/$),KlientUpdateView.as\u view(),name='url\u klient\u change'), 更新视图负责更新对象,它使用KlientUpdateForm class KlientUpdateView(UpdateView): form_class = KlientUpdateForm model = Klient
UpdateView
:
url(r'^klient\u change/(?p\d+/$),KlientUpdateView.as\u view(),name='url\u klient\u change'),
更新视图负责更新对象,它使用KlientUpdateForm
class KlientUpdateView(UpdateView):
form_class = KlientUpdateForm
model = Klient
template_name = 'forms/klient_zmenit.html'
问题是,我需要使用自己的save方法更新现有对象,该方法获取klient object
,并执行更多操作(在本例中,我的save方法不完整,它执行的操作更多)
如何从
modelForm
中的URL获取具有pk的particualr对象?有可能这样做吗ModelForm
对request
一无所知。我的想法是在updateview
中获取对象,这是可能的,但我不知道如何将它传递到modelform
的save方法 在KlientUpdateForm.save
中,您的对象应该可以作为self.instance
是!你说得对self.instance.pk
返回所需的主键!
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