【问题标题】:How do staff users edit their profiles in Django admin?员工用户如何在 Django admin 中编辑他们的个人资料?
【发布时间】:2012-03-16 17:08:06
【问题描述】:

我是 Django 新手。我正在开发一个仅包含员工用户的网站。我是管理员。我的计划是注册一个用户并给他他的用户名和密码来登录;我希望他能够编辑他的个人资料以添加更多信息,而不是更改现有属性。我该怎么做?

【问题讨论】:

    标签: django django-admin django-profiles


    【解决方案1】:

    最简单的方法可能是创建一个适当的 ModelForm 和一个相应的视图,检查用户想要更新的实例是自己的实例。

    我想直接在后台集成这个,你也可以这样做。最 djangoish 的方法可能是为 User 创建一个自己的 ModelAdmin 类,该类覆盖了正确的方法(请参阅方法 startinghere)。我认为您应该从覆盖 has_change_permission 开始,您可以在其中检查用户尝试编辑的对象是否是他自己的,否则返回 False。

    要替换标准的 User ModelAdmin,您需要在 admin.py 中做一些修改:

    from django.contrib import admin
    from django.contrib.auth.admin import UserAdmin 
    from django.contrib.auth.models import User
    class MyUserAdmin(UserAdmin):
        # add the code here
    
    # deregister the standard AdminModel and register the own one
    admin.site.unregister(User)
    admin.site.register(User, MyUserAdmin)
    

    (我在一个实时站点上使用此代码并且它可以创建)

    【讨论】:

      猜你喜欢
      • 2020-11-27
      • 2020-11-04
      • 2017-11-10
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多