1

我有这种情况:

要编辑客户端,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'

问题是,我需要使用我自己的 save 方法更新现有对象,该方法获取klient object并执行更多操作(我的 save 方法在此示例中不完整,它执行更多操作)。

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

如何从 URL in 获取具有 pk 的特定对象modelForm?是否有可能做到这一点?ModelForm什么都不知道request。我的想法是获取updateview可能的对象,但我不知道如何将其传递给save method那个 modelform

4

1 回答 1

2

KlientUpdateForm.save中,您的对象应该可以作为self.instance.

于 2012-12-27T10:52:41.650 回答