访问UpdateView中的Object以传递pk for success_url

时间:2015-08-29 09:44:51

标签: django

我想让用户看一个以func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { println("didFailToReceiveAdWithError: \(error)") } 为参数的视图。

我想使用pk中的self.object来查找UpdateView并将{is} pk传递给args lazy_reverse }}

首先,是否有更好的方法,第二,如何访问对象?

1 个答案:

答案 0 :(得分:6)

最简单的选择是在模型中添加get_absolute_url方法。然后UpdateView将重定向到此,您根本不需要设置success_url

class MyModel(models.Model):
    ...

    get_absolute_url(self):
        return reverse('view_mymodel', args=(self.pk,))

如果您不想这样做,那么您无法在此处使用success_urlreverse_lazy,因为根据主键,每个视图的网址都会更改。

相反,您可以使用get_success_url。您可以使用self.object访问该对象。

def get_success_url(self):
    return reverse('view_mymodel', args=(self.object.pk,))