Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 访问UpdateView中的对象以传递pk for success\u url_Django - Fatal编程技术网

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
的重复性可能会小一些,但选择哪种并不重要。