2016-02-02 5 views
2

у меня есть свои модели и все, как это, когда я пытаюсь загрузить изображение это то, что я получил:UploadPhoto Джанго Rest Framework

'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) 

Serializer :

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) 

Я попробовал несколько вариантов, чтобы загрузить фотографию, но я не мог реализовать таким образом, я ценю вашу помощь (:

ответ

0

Ну, после того, как немного попыток я мог, загрузить изображение с этим кодом надеждой полезно

View.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) 
Смежные вопросы