来自外部应用程序的Django URL参数

时间:2010-07-01 10:35:21

标签: django django-urls

我正在使用Django,我在项目的urls.py文件中有以下URL。

(r'^user/(?P<username>[\w_\-\.]+)/my_app/', include('my_app.urls')),
(r'^user/(?P<username>[\w_\-\.]+)/my_other_app/', include('my_other_app.urls')),
...

目标是让应用程序使用用户的用户名,例如每个用户都有个人资料页面的个人资料应用程序此应用程序中只有一个视图需要在URL中显示用户名(呈现配置文件页面的用户名),但所有视图必须采用username参数,即使它们不对其执行任何操作。

我怀疑这种URL参数的使用是错误的,因为它强制my_app的每个视图都将用户名作为参数(因为它是从URL调度程序传递的)。对我而言,外部组件(项目的urls.py文件)告诉my_app的URL要采用哪些参数是没有意义的。

这种用法是否正确?如果没有,我该怎么做?

1 个答案:

答案 0 :(得分:0)

这看起来有点奇怪。

您是否可以切换应用以查找用户名参数?在my_app.urls和后者之下,只需在您需要的字段中查找username字段。

这样你的结构看起来更像:

/user/my_app/friends/hekevintran/

/user/my_other_app/connections/bartek/

同样有效,并且不会强制您的应用依赖根项目的上下文来获取用户名。