Django将反向url变为变量

时间:2014-01-11 06:27:55

标签: python django

我想要一个反向url到变量。我有应用程序。一个帐户和另一个个人资料。

我的主要网址

urlpatterns = patterns('',      
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', views.index, name='index'),
    url(r'^account/', include('account.urls', namespace="account")), 
    url(r'^profiles/', include('profiles.urls', namespace="profiles")),
)

我的个人资料应用网址

urlpatterns = patterns('',
    url(r'^view/(?P<username>\w+)/$', views.profile, name="profile"),
)

我的帐户应用网址

urlpatterns = patterns('',
    url(r'^message/add_new/$', views.new_message, name='new_message'),

) 

我的帐户应用视图

def new_message(request):
    if request.user.is_authenticated():
        sender_username = request.user.username
        sender_url = reverse('prfiles.views.profile', args=(sender_username,))

但我收到了“NoReverseMatch at”错误。请建议我更好的解决方法。

1 个答案:

答案 0 :(得分:1)

恕我直言,prfiles.views.profile似乎错字。

修复拼写错误(如果是)或使用网址格式名称而不是视图名称。

sender_url = reverse('profiles:profile', args=(sender_username,))

请参阅Reversing namespaced URLs | Django documentation