Django Rest Framework: RecursionError в / profile / максимальная глубина рекурсии превышена при вызове объекта Python - PullRequest
0 голосов
/ 06 июля 2018

Я завершил свой проект в социальных сетях и установил опцию выхода из системы Между тем я наткнулся на приложение django-rest-auth и попытался его использовать, но позже решил сделать это сам, удалил его из settings.py и urls.py и использовал «pip uninstall django-rest-auth», чтобы очистить вещи , Теперь, когда я пытаюсь создать нового пользователя, он выдает мне эту ошибку:

RecursionError в / profile / максимальная глубина рекурсии превышена при вызове объекта Python

models.py

class Profile(models.Model):
    user = models.OneToOneField(User,related_name='profile',on_delete=models.CASCADE)
    location = models.CharField(max_length=30,blank=True)
    friends_count = models.PositiveIntegerField(default=0)
    profile_pic = models.FileField(upload_to='profile_pics/',blank=False,null=True)

    def natural_key(self):
        return (self.user.username,)

views.py:

class UserCreateAPIViewSet(viewsets.ModelViewSet):   
    """"A View which handles  Creating  and Updating User Profile"""
    serializer_class = UserProfileCreateSerializer
    queryset = User.objects.all()

    authentication_classes = (TokenAuthentication,)
    permission_classes = (permissions.UpdateOwnProfile,)

    filter_backends = (filters.SearchFilter,)
    search_fields = ('username','email',)

urls.py:

  router.register(r'profile',views.UserCreateAPIViewSet)

serializers.py:

class UserProfileCreateSerializer(serializers.ModelSerializer):
     """"A serializer for user data request"""
     location = serializers.CharField(source='profile.location')
     friends_count = serializers.IntegerField(source='profile.friends_count',read_only=True)
     profile_pic = serializers.FileField(source='profile.profile_pic',allow_empty_file=True,allow_null=True)


     class Meta:
         model = User
         fields = (
            'pk',
            'username',
            'email',
            'password',
            'location',
            'friends_count',
            'profile_pic',
         )
         extra_kwargs = {
        'password':{'write_only':True},
        'friends_count':{'read_only':True},
    }

    def create(self, validated_data):
    """"Create and return a new User"""


        user = User(
        email = validated_data['email'],
        username = validated_data['username']
        )

        user.set_password(validated_data['password'])

        user.save()

        return user
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...