Django:如何阅读嵌套的url正则表达式

时间:2014-10-09 21:05:25

标签: python regex django url dispatcher

我在主urls.py中有这个:

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^([\w-]+)/foo/', include('foo.urls')),
)

,这在foo.urls.py中:

urlpatterns = patterns('',
    url('([\w-]+)/$', FooList.as_view()),
)

foo.views.py

class FooList(ListView):
    def get_queryset(self):
        print self.args[0]
        return Foo.objects.all()

当我去

http://localhost:8000/arg1/foo/arg2 

我在FooList get_queryset函数中的self.args中只有'arg2'。如何从这个有趣的东西中读取'arg1'?

1 个答案:

答案 0 :(得分:1)

从文档中看,当您使用命名组(最终为kwargs而不是args)时,它应该按预期工作:https://docs.djangoproject.com/en/1.7/topics/http/urls/#captured-parameters

由于这是命名组的预期行为,对我来说(对你来说很明显,因为你发布了这个问题)它对于非命名组不起作用。但不能说我已尝试过。希望文档链接有所帮助。