get_success_url在URL的末尾生成“None”

时间:2013-12-19 03:46:34

标签: python django django-generic-views

我一直在尝试在django通用视图中使用“UpdateView”。我想要实现的是返回相同的“UpdateView”页面。 我的代码如下:
我的网址

#urls.py    
urlpatterns = patterns(
    '',
    url(r'^code/(?P<pk>\d+)/update/', CodeUpdate.as_view(model=Code, template_name='code_update.html'),name='update',),
    )

我的观点

#views.py
class CodeUpdate(UpdateView):
    def get_success_url(self):
        pass

点击更新按钮后,我预计目的地为

  

/代码/ 18 /更新/

然而事实证明是

  

/代码/ 18 /更新/无

如何删除“无”?谢谢。

现在,如果我这样做:

#views.py
class CodeUpdate(UpdateView):
    def get_success_url(self):
        return reverse('update')

我会收到此错误。

  

使用参数'()'和找不到关键字参数'{}来反向'更新'。尝试了1种模式:[u'/ code /(?P \ d +)/ update /']

如何将'pk'值作为反向函数中的参数传递。

感谢。

1 个答案:

答案 0 :(得分:1)

更新成功后,它将重定向到get_success_url()返回的网址。由于您未在该函数中返回任何内容,因此您将被重定向到.../update/None

从该方法返回适当的url或删除该方法的默认行为。