Django 访问UpdateView中的对象以传递pk for success\u url
我想让用户看到一个以Django 访问UpdateView中的对象以传递pk for success\u url,django,Django,我想让用户看到一个以pk为参数的视图 我想使用UpdateView中的self.object来查找pk,并将列表作为args传递到success\u url处的lazy\u reverse 首先,是否有更好的方法,其次,如何访问对象?最简单的选择是向模型中添加方法。然后,UpdateView将重定向到此位置,您根本不需要设置success\u url class MyModel(models.Model): ... get_absolute_url(self):
pk
为参数的视图
我想使用UpdateView
中的self.object
来查找pk
,并将列表作为args
传递到success\u url
处的lazy\u reverse
首先,是否有更好的方法,其次,如何访问对象?最简单的选择是向模型中添加方法。然后,
UpdateView
将重定向到此位置,您根本不需要设置success\u url
class MyModel(models.Model):
...
get_absolute_url(self):
return reverse('view_mymodel', args=(self.pk,))
如果不想这样做,则不能在此处使用success\u url
和reverse\u lazy
,因为每个视图的url都会根据主键而变化
相反,您可以使用。您可以使用self.object
访问对象
def get_success_url(self):
return reverse('view_mymodel', args=(self.object.pk,))
您是否只想通过
pk
?您可以从self.kwargs
获取pk
,然后将其传递给reverse\u lazy
。这可能很方便,但这次我需要通过object进行查找这两种方法之间有什么区别?我应该在什么时候选择wich?有时您可能希望使用不同于get\u absolute\u URL
的URL,因此您需要使用get\u success\u URL
。剩下的时间,使用get\u absolute\u url
的重复性可能会小一些,但选择哪种并不重要。