在Django Rest Framework中注册用户并为用户设置组

我的用户类别是:

class UserProfile(User):
    sex = models.SmallIntegerField(verbose_name=_(u'sex'), choices=SEX_TYPES, default=1)
    .
    .

UserProfileSerializer:

class ProfileSerializer(serializers.ModelSerializer):
     groups = GroupSerializer()

     class Meta:
        model = UserProfile
        fields = ('id', 'first_name', 'last_name', 'username','email','groups')

允许用户注册的api视图是:

@api_view(['POST'])
def create_user(request):
      serialized = ProfileSerializer(data=request.DATA)
      if serialized.is_valid():
          created_user = UserProfile.objects.create_user(
              serialized.init_data['email'],
              serialized.init_data['username'],
              serialized.init_data['password'],
          )
          # here I want assign a group for user or anything else
          created_user.groups = "users"
          created_user.save()

          return Response(serialized.data, status=status.HTTP_201_CREATED)
      else:
          return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)

通过此测试:

curl -X POST -H "Content-Type: application/json" -d '
{
"username":  "aaa",
"email": "[email protected]" ,
"password":  "111111"
}' http://127.0.0.1:8000/api/users/register/

组总是有错误。{"groups": ["This field is required."]}

如何为用户或其他任何人分配组?

提前致谢

马里奥杰夫

确保已创建用户组,然后执行以下操作:

from django.contrib.auth.models import Group

users_group = Group.objects.get(name='users')

created_user.groups = [users_group]
# or instead:
# created_user.groups.add(users_group)

参考:

https://docs.djangoproject.com/zh-CN/dev/topics/auth/default/#permissions-and-authorization

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

django rest框架用户注册

Django rest框架用户注册?

Django Rest Framework用户特定

Django Rest Framework - 为用户、组和权限创建 API

使用Django Rest框架进行用户注册

使用Django Rest Framework返回当前用户

使用Django Rest Framework返回当前用户

如何从用户 Django Rest Framework 接收数据

如何在Django Rest Framework中将当前用户设置为用户字段?

用于注册/登录用户的Django REST Framework和python-social-auth

Django Rest Framework-注册后返回用户ID和令牌

使用Djoser和Django Rest Framework在注册用户时传递其他数据

Django-rest-framework将不会发送用户注册激活电子邮件

Django Rest Framework - 通过电子邮件验证注册用户

未在 django rest url 中注册的视图

Django Rest Framework创建用户和用户配置文件

如何在Django Rest Framework中使用电子邮件而不是用户名注册用户

如何使用Django-Rest-Framework序列化用户组

如何在Django Rest Framework中哈希Django用户密码?

对多种用户类型使用django-rest-auth注册

如何在Django Rest Framework中设置必填用户字段?

Django REST Framework(DRF):将当前用户ID设置为字段值

我在 django 中注册时尝试将用户添加到定义的组时出现错误

Django Rest Framework的ModuleNotFoundError

Django Rest Framework 自定义注册视图 (RegisterView) 无法返回令牌 + 用户数据

从db Django Rest_framework View函数中删除用户

Django Rest Framework中扩展用户模型的补丁方法

Django Rest Framework-显示用户个人资料

请求当前用户 API 令牌 Django REST Framework