2013-12-23 38 views
4

我的用戶類別是:註冊用戶對於用戶

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_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."]}

如何爲用戶或其他人分配組?

在此先感謝

回答

4

請確保您有用戶組中創建的,那麼你就以下事項:

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/en/dev/topics/auth/default/#permissions-and-authorization

+0

謝謝,我已經解決了這個問題由你的anwser,並從序列化器中的fileds中刪除「組」 – TheNone