2016-09-28 115 views
1

我在我的博客应用程序中创建一个创建视图来创建一个帖子。在 创建视图我使用了函数get_success_url。我希望当我创建 的帖子时,它会重定向到blog_post_list。^hNoReverseMatch Django,get_success_url在CreateView

我得到的错误:NoReverseMatch

我猜它做某事与URL模式。

main urls.py 

    from django.conf.urls import url, include 
    from django.contrib import admin 

    from blog.views import AboutPageView, ContactPageView 

    urlpatterns = [ 
     url(r'', include('blog.urls', namespace='posts')), 
     url(r'^blog/', include('blog.urls', namespace='posts')), 
     url(r'^about/$', AboutPageView.as_view(), name='about'), 
     url(r'^contact/$', ContactPageView.as_view(), name='contact'), 


     #admin and login 
     url(r'^admin/', admin.site.urls), 

    ] 

网址博客应用在blogapp

from django.conf.urls import url 

from .views import blog_postListView, blog_postDetailView, blog_postCreateView 

urlpatterns = [ 
    url(r'^$', blog_postListView.as_view(), name='blog_post_list'), 
    url(r'^create/', blog_postCreateView.as_view(), name='blog_post_create'), 
    url(r'^(?P<slug>[-\w]+)$', blog_postDetailView.as_view(), name='detail'), 
] 

意见

class blog_postCreateView(CreateView): 
    #model = blog_post 
    form_class = blog_postForm 
    template_name = "form.html" 
    #fields = ["title", "content"] 
    def get_success_url(self): 
     return reverse("blog_post_list") 

回答

1

您还没有命名空间,所以它不是能够找到blog_post_list

所以只需在反向呼叫中添加命名空间

reverse("posts:blog_post_list")

有关NoReverseMatch错误的详细信息,请参阅What is a NoReverseMatch error, and how do I fix it?

+1

谢谢了很多:) 将肯定了解没有反向匹配的链接,你救了我的时间 欢呼声,感谢您的帮助 –

+0

@ RobertF。 - 不用担心,享受 – Sayse