我已经安装了django-userena来管理用户配置文件,并且一切正常,除了新注册的用户无法编辑/更新其配置文件并且仅面对空白屏幕.
如果我使用户成为超级用户,则可以更改/更新配置文件.
在django-userena中找到以@ permission_required_or_403(‘change_profile’,(get_profile_model(),’user__username’,’username’))装饰的profile_edit视图
显然需要添加post_save信号以添加必要的权限,但是我想知道是否有诸如USERENA_ALLOW_UPDATE_PROFILE之类的设置可以帮助我吗?
解决方法:
最终深入研究django-userena和django-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())
标签:user-profile,python,django 来源: https://codeday.me/bug/20191127/2076454.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。