Django:禁止使用userena编辑个人资料

时间:2012-08-27 12:42:14

标签: python django user-profile

我已经安装django-userena来管理用户个人资料,除了新注册的用户无法编辑/更新他们的个人资料并只面对空白屏幕外,一切正常。

如果我让用户成为超级用户,则可以更改/更新个人资料。

profile_edit装饰django-userena

中找到@permission_required_or_403('change_profile', (get_profile_model(), 'user__username', 'username'))视图

显然需要添加post_save信号以添加必要的权限,然而我想知道是否有任何设置如USERENA_ALLOW_UPDATE_PROFILE可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

最后挖掘django-userenadjango-guardian来源我提供了这个小研究的输出,所以如果您希望用户能够编辑他们的个人资料,您可以使用以下代码

用户发布保存信号,为新用户对象添加“change_profile”权限

@receiver(post_save, sender=User, dispatch_uid='user.created')
def user_created(sender, instance, created, raw, using, **kwargs):
  """ Adds 'change_profile' permission to created user objects """
  if created:
    from guardian.shortcuts import assign
    assign('change_profile', instance, instance.get_profile())

答案 1 :(得分:1)

对于现有用户,只需发出此命令,页面便会运行:

python manage.py check_permissions