我有这样的网址:
url(r'^(?P<user_id>\d+)/profile/$', views.ProfileView.as_view(), name='profile'),
当用户点击Update Profile
时,我会使用message
更新表单并使用messaging framework
重定向到相同的个人资料网址。
# views
# Use the message framework to pass the message profile successfully updated
messages.success(request, 'Profile details updated.')
# Redirect to the same view with the profile updated successfully message
return HttpResponseRedirect(reverse('profile', args=(request.user.id,)))
但是我收到了这个错误:
NoReverseMatch at /5/profile/
Reverse for 'profile' with arguments '(5L,)' and keyword arguments '{}' not found.
怎么了?
答案 0 :(得分:3)
你得到的是因为Python 2.x.x的工作原理。
来自数据库行的所有整数都会以L
或l
为后缀(通常为大写L
)。
一种快速而又脏的工作方式
return HttpResponseRedirect(reverse('profile', args=(int(long(request.user.id)),)))