我在主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”?

最佳答案

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

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

10-07 19:37
查看更多