이 구조를 처음부터 만들면 좋겠지만 좀 어렵습니다.
Post - PostImage(3)
한번에 하지말고
object한개당 정확히 돌아가게 하세요
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