允许 Django 用户创建另一个
Posted
技术标签:
【中文标题】允许 Django 用户创建另一个【英文标题】:Allow Django user to create another one 【发布时间】:2018-10-10 01:24:05 【问题描述】:首先,我是初学者。
我正在为我的家人创建一个网站,让他们在圣诞节交换礼物。每个人都可以为每个人发布礼物创意。
我想让父母为他们的孩子创建一个帐户并能够管理他们。例如。重命名、删除、更改头像...
我有一个与用户关联的配置文件模型...
我正在考虑创建一个子模型...?但我被困住了。
【问题讨论】:
向我们展示您迄今为止的尝试! @StefGou 这是来自 Vitor Freitas 的一篇很好的博文,涵盖了您想要完成的工作simpleisbetterthancomplex.com/tutorial/2018/01/18/… 如果您是初学者并想学习 Django,强烈推荐这个网站! 您可以添加代码以便更好地理解问题。您可以为孩子和父母添加两个注册表单,将孩子模型与父母链接并授予链接的父母编辑或重命名等权限。 【参考方案1】:我认为一种可能性是制作一个与用户类具有一对一关系的模型,正如文档所述:
https://docs.djangoproject.com/en/2.1/topics/auth/customizing/#extending-the-existing-user-model
并在该模型中放置您想要可编辑的自定义数据,特权角色可以编辑非特权角色
我要留下一个我用过的例子:
from django.contrib.auth.models import User
from django.db import models
class Profile(models.Model):
"""Profile model
Proxi model that extends de base data
with orher information
"""
user = models.OneToOneField(User, on_delete=models.CASCADE)
website = models.URLField(max_length=200, blank=True)
biography = models.TextField(blank=True)
phone_number = models.CharField(max_length=20, blank=True)
picture = models.ImageField(
upload_to="users/pictures",
blank=True,
null=True)
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
def __str__(self):
return self.user.username
希望对你有用
【讨论】:
然后您可以编辑管理站点以添加或编辑新用户以上是关于允许 Django 用户创建另一个的主要内容,如果未能解决你的问题,请参考以下文章
AWS IAM 策略允许用户创建具有特定策略/角色的 IAM 用户