SAFEER N
SAFEER N

Reputation: 1197

Django get reverse url into a variable

I want a reverse url into a variable. I have to apps. one account and another profiles.

my main 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")),
)

my profiles app url

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

my account app url

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

) 

my account app view

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

but I got 'NoReverseMatch at' error. Please suggest me a better way to solve this.

Upvotes: 1

Views: 591

Answers (1)

falsetru
falsetru

Reputation: 369064

IMHO, prfiles.views.profile seems like typo.

Fix typo (if it is) or use the URL pattern name instead of the view name.

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

See Reversing namespaced URLs | Django documentation.

Upvotes: 1

Related Questions