如何解决在一个用户角色请求中在 django rest api 中插入三个相关模型的最佳方法
我有三个用于定义用户角色的模型。每个用户可以有多个角色。在一个请求中将角色作为列表插入并为他们创建用户帐户的最佳方法是什么?
我的模型:
class Account(AbstractBaseUser):
# django's own fields
email = models.EmailField(blank=True,null=True,max_length=60,unique=True)
....
class Role(models.Model):
name = models.CharField(max_length=20,verbose_name='اسم رول')
def __str__(self):
return self.name
class Meta:
verbose_name = 'رول'
verbose_name_plural = 'رول ها'
class UserRole(models.Model):
account = models.OneToOneField(Account,on_delete=models.CASCADE,verbose_name='اکانت',related_name='user_roles')
roles = models.ManyToManyField(Role,verbose_name='رول')
is_active = models.BooleanField(verbose_name='فعال')
def __str__(self):
return f"{self.account}"
class Meta:
verbose_name = 'رول کاربر'
verbose_name_plural = 'رول های کاربر'
我的序列化程序:
class RoleSerializer(serializers.ModelSerializer):
class Meta:
model = Role
fields = ['id','name']
class UserRoleSerializer(serializers.ModelSerializer):
roles = RoleSerializer(many=True,read_only=True)
class Meta:
model = UserRole
fields = ['roles','is_active']
extra_kwargs = {'roles': {'required': False}}
class NewAccountSerializer(serializers.ModelSerializer):
user_roles = UserRoleSerializer(many=False,read_only=False)
class Meta:
model = get_user_model()
fields = ['phone_number','user_roles',]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。