PostImage

dooh kim·2020년 4월 8일
0

이 구조를 처음부터 만들면 좋겠지만 좀 어렵습니다.

Post - PostImage(3)
한번에 하지말고
object한개당 정확히 돌아가게 하세요

  1. Post(나의 경우 User or Restaurant) Create 하자
  2. PostImage Create( User Image or Restaurant Image)
  3. Post - PostImage(3) (User - UserImage(3)
    이 순서대로 각각 해보고 같이 합쳐서 해보는 방식으로 일을 잘
    나눠서 해보자

case1)
form-data
case2)
{
key : {
key : []
}
}

파일인 경우 form-data로 받아라
profile < profileimage

request.data = {
'content' : '',
'image' : ''
}

request.data.getlist('image')
getlist로 받는다!!여러이미지
django 에서 파일 이미지 받는 형식 form-data로 만 가능(내가 아는 선에서)
content
image
image
image

google 검색
drf form-data multiple file serializer

https://stackoverflow.com/questions/27785292/django-rest-framework-uploading-multiple-files/33477711

class ProFileListSerializer ( serializers.Serializer ) :

    files = serializers.ListField(
                child=serializers.FileField( max_length=100000,
                                             allow_empty_file=False,
                                             use_url=False )
            )
# post 에는 images라는 객체를 가지고 있지 않아서 오류가 난다.
# validated_data.pop('images') images라는 필드를 빼고

class PostSerializer(serializers.ModelSerializer):
	
  def create(self, validated_data):
  
    images = validated_data.pop('images') 
    post   = super().create(validated_data)
    serializer = PostImageCreateSerializer(data={'image' : image})
    if serializer.is_valid():
      serializer.save(post=post)
  return post
      
# /usr/bin/python3

class ProfileCreateSerializer(serializers.ModelSerializer):
  images = serializers.ListField(
  	child = serializers.ImageField()
  )
  class Meta:
    model = Profile
    fields = '__all__'
    
  def create(self, validated_data):
  
    images = validated_data.pop('images') 
    profile   = super().create(validated_data)
    serializer = MyUserImageCreateSerializer(data={'image' : image})
    if serializer.is_valid():
      serializer.save(=post)
  return post
      
profile
testify to the light

0개의 댓글