【问题标题】:Django Userena change url guardian errorDjango Userena 更改 url 监护人错误
【发布时间】:2015-03-09 16:48:33
【问题描述】:

嘿,我尝试使用带有 django 的 userena 来构建一个登录后仪表板干净的网站。我目前的问题是 userena 使用了相当高的 url 深度。

Userena 在 myproject/accounts 下并使用 url 'user'。后来的“仪表板”。 登录时 127.0.0.1:8000/user/ 是 userena url。在正常状态下,它会列出所有注册用户。我已经设法将其更改为显示当前登录的用户个人资料(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
....

我尝试更改 url 和视图,但我总是得到 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

错误:

可能有多种方法可以存档。感谢您的帮助,对糟糕的英语感到抱歉。

【问题讨论】:

    标签: python django url views


    【解决方案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'),
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 2012-12-15
      • 1970-01-01
      • 2011-10-12
      • 2013-02-04
      • 1970-01-01
      相关资源
      最近更新 更多