嘿,我尝试使用userena与django建立一个登录后有一个干净的仪表板的网站。我目前的问题是userena使用了相当高的网址深度。
Userena在myproject / accounts下,并使用url'user'。后来的'仪表板'。 登录127.0.0.1:8000/user/是userena网址。在正常状态下,它列出了所有注册用户。我已设法更改它以使用(accounts / urls.py)显示当前登录的用户配置文件:
url(r'^$', views.dashboard, name='dashboard'),
url(r'^', include('userena.urls')),
我现在的问题是我要更改正常的userena网址。 Userena网址是:
127.0.0.1:8000/user/username/signout
127.0.0.1:8000/user/username/edit
127.0.0.1:8000/user/username/email
127.0.0.1:8000/user/username/password
....
我想:
127.0.0.1:8000/user/signout
127.0.0.1:8000/user/edit
....
我试图改变网址和视图,但我总是得到GuardianError。
网址更改:
url(r'^edit', userena_views.profile_edit),
查看更改:
url(r'^edit', views.settings, name='settings'),
+
def settings(request):
user = request.user
response = userena_views.profile_edit(request, user)
return response
错误:
可能有多种方法可以存档。谢谢你的帮助,对不起英语很抱歉。
答案 0 :(得分:1)
我在这里找到了解决此问题的方法http://tundebabzy.blogspot.de/2013/04/an-easy-way-to-override-third-party-app.html
我几乎改变了教程中的视图,以提供与原始userena视图相同的文件。没有用户名的情况让我在视图中添加额外的内容。
def profile_edit(request, edit_profile_form=userena_forms.EditProfileForm,
template_name='userena/profile_form.html', success_url=None,
extra_context=None, **kwargs):
username = request.user
return userena_views.profile_edit(request=request, username=username,
edit_profile_form=edit_profile_form, template_name=template_name,
success_url=success_url, extra_context=extra_context)
地址:
url(r'^edit/$', views.profile_edit, name='userena_profile_edit'),