在Django URL中包括所包含名称空间的主键?

时间:2019-05-01 18:40:54

标签: django

我的urls.py中包含以下内容:

ta_patterns = [
    path('no_pk_needed/', view1.as_view()),
    path('pk_needed/<int:campaign_pk>/', view2.as_view()),
]
campaign_patterns = [
    path('ta/',
         include((ta_patterns, 'ta'), namespace='ta')),
]

这将生成以下网址:

campaign/ta/no_pk_needed/
campaign/ta/pk_needed/<int:campaign_pk>/

我希望campaign_pk尽可能靠近campaign/。理想情况下,我想实现以下目标:

campaign/ta/no_pk_needed/
campaign/<int:campaign_pk>/ta/pk_needed/

但是我不知道如何使用当前的模式来做到这一点。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我认为您需要将两者结合起来,而不是使用包含。

campaign_patterns = [
    path('ta/no_pk_needed/', view1.as_view()),
    path('<int:campaign_pk>/ta/pk_needed/', view2.as_view()),
]