Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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
Python 如何在Django url.py中使用slug配置类别、子类别和帖子?_Python_Django - Fatal编程技术网

Python 如何在Django url.py中使用slug配置类别、子类别和帖子?

Python 如何在Django url.py中使用slug配置类别、子类别和帖子?,python,django,Python,Django,我需要如下配置Django URL: /<slug_category>/ /<slug_category>/<slug_sub_category>/ /<slug_category>/<slug_post>/ def cat_or_post(request,category_slug,slug_subcategory): try: post = Post.objects.get(slug=slug_subcat

我需要如下配置Django URL:

/<slug_category>/
/<slug_category>/<slug_sub_category>/
/<slug_category>/<slug_post>/
def cat_or_post(request,category_slug,slug_subcategory):
    try:
        post = Post.objects.get(slug=slug_subcategory)
        # put the rendering code here
     except Post.DoesnotExist:

        return category(request,category_slug,slug_subcategory)
//
///
///
我试过这个。问题在于
//
//
之间存在冲突

urlpatterns = [
    url(r'^(?P<category_slug>[\w-]+)$', views.category),  
    url(r'^(?P<category_slug>[\w-]+)/(?P<slug_subcategory>[\w-]+)/$', views.category), 

    url(r'^(?P<category_slug>[\w-]+)/(?P<post_slug>[\w-]+)/$', views.post),
]
urlpatterns=[
url(r'^(?P[\w-]+)$,views.category),
url(r'^(?P[\w-]+)/(?P[\w-]+)/$”,views.category),
url(r'^(?P[\w-]+)/(?P[\w-]+)/$”,views.post),
]
有可能吗?有人能帮我吗


谢谢

您不能使用两个不同的URL,因为它们具有相同的模式(如注释中所指出的)。解决方案是使用相同的URL并相应地获取内容。比如说

urlpatterns = [
    url(r'^(?P<category_slug>[\w-]+)$', views.category),  
    url(r'^(?P<category_slug>[\w-]+)/(?P<slug_subcategory>[\w-]+)/$', views.cat_or_post), 

]

它们具有相同的正则表达式结构,您可以尝试使用如下内容:
category//post/
Yes@Gotch。谢谢你的帮助!但不幸的是,这个网站已经存在(在Wordpress中),我想保持URL的相同结构。你试过我的答案了吗?谢谢@e4c5!我认为这是最好的选择!但必须确保slug_子类别和slug_post不相等。是的,确实如此,但通常word press自动生成的post slug相当长,因为类别slug很短。所以它不太可能引起问题