【问题标题】:UploadPhoto To Django Rest Framework将照片上传到 Django Rest 框架
【发布时间】:2016-02-03 05:56:28
【问题描述】:

我有我的模型和类似的东西,当我尝试上传图片时,这就是我得到的:

'PhotoSerializer' object has no attribute '_committed

我的看法:

class UploadPhoto(APIView):
    #authentication_classes = (TokenAuthentication,)
    permission_classes = ()#(IsAuthenticated,)

    def put(self, request, username):

        user = User.objects.get(username = username)
        userprofile = UserProfile.objects.get(user= user)
        photo = PhotoSerializer(data = request.data)
        userprofile.photo = photo
        userprofile.save()
        return Response(status= status.HTTP_200_OK)

序列化器:

class PhotoSerializer(serializers.ModelSerializer):
    class Meta:
        model = UserProfile
        fields = (
            'photo',
        )

至少还有我的 Model.py

class UserProfile(models.Model):
    """
    User Profile

    """
    user = models.OneToOneField(User, related_name='userprofile')

    GENDER_CHOICES = (
        ('M', 'Male'),
        ('F', 'Female'),
    )
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES, default='M')

    phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$',message="Phone must be entered in the format: '+999999999'. Up 15 digits allowed.")
    #The Field on DataBase after check if it's a valid Phone Number.
    # validators should be a list
    phone_number = models.CharField(validators=[phone_regex], max_length=15, blank=True) 
    photo = models.ImageField(upload_to = 'photos/', null = True)

    driver_passenger = models.BooleanField(default=True)
    rides_given = models.IntegerField(default=0) 
    rides_taken = models.IntegerField(default=0)
    reputation = models.IntegerField(default=0)

我尝试了一些上传照片的选项,但我无法实现,因此感谢您的帮助(:

【问题讨论】:

    标签: python django rest django-rest-framework


    【解决方案1】:

    好吧,经过一番尝试后,我可以,用这个上传图片 代码希望有用

    查看.py

    class UploadPhoto(APIView):
        #authentication_classes = (TokenAuthentication,)
        permission_classes = ()#(IsAuthenticated,)
    
        def put(self, request, username):
    
            user = User.objects.get(username = username)
            userprofile = UserProfile.objects.get(user= user)
            photo = PhotoSerializer(userprofile,data = request.data)
            photo.is_valid(raise_exception=True)
            photo.save()
    
            return Response(status= status.HTTP_200_OK)
    

    【讨论】:

      猜你喜欢
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 2016-05-02
      • 2014-03-15
      • 2018-10-31
      • 1970-01-01
      • 2021-06-06
      相关资源
      最近更新 更多