2016-06-07 5 views
3

models.py는장고 나머지 프레임 워크 imagefield

picture = models.ImageField(upload_to='Images/', 
          default='/Images/None/No-img.jpg', blank=True,null=True) 

는하지만 여전히 필수 필드로 보여주는 것

class UserProfileSerializer(serializers.ModelSerializer): 
    picture = serializers.ImageField(max_length=None, 
            allow_empty_file=True, use_url=True) 

    class Meta: 
     model = UserProfile 
     fields = ('id','picture',)  
     read_only_fields=('id') 

, 나는 이미지로 POST 요청을 할 수 없습니다 serializers.py, 그것을이다 곤충?

+0

당신이 이미 시도 했나 : 홈페이지 = forms.URLField (레이블 = '웹 사이트'= 거짓 필수) 일명 = 거짓 필요한 당신은 아마 models.py에 그래서 아마 양식을 사용하지 않는 – Zargold

+0

: null = True? – Zargold

+0

나는 그 null = True로 시도 했어. 어떤 차이도 없다. – thisisms

답변

3

아마도 picture을 시리얼 라이저에 required=False으로 설정해야합니다. 당신이 어떤 required 매개 변수없이 image 필드를 정의한 이후

, DRF 즉 True 기본 required 값을 가정한다. 비 직렬화 중에이 필드를 제공하지 않으면 DRF는 image 필드가 필요하다는 오류를 발생시킵니다. 필드가 직렬화 복원시에 제공되지 않는 경우 docs:

에서

은 일반적으로 오류가 발생합니다. deserialization 중에이 필드가 일 필요가 없으면 false로 설정하십시오.

기본값은 True입니다.

class UserProfileSerializer(serializers.ModelSerializer): 
    picture = serializers.ImageField(required=False, max_length=None, 
            allow_empty_file=True, use_url=True) 
+1

내 restframework를 3.3 문제로 업데이트했습니다. 도움을 주셔서 감사합니다. – thisisms

+1

extra_kwargs = { '그림': {필수 항목 : 거짓}} '도 가능합니다. –

관련 문제