728x90
320x100
다중이미지 업로드..... 가 해 보고 싶었다.
Article 테이블에서 이미지필드를 빼고
이미지 테이블을 따로 만들어서 article 이랑 1:N으로 연결하는 시도
#articles/models.py
'''
이미지 다중 업로드 받기
- 게시글과 이미지를 1:N으로 설정해 테이블 생성
'''
# 이미지 업로드 경로
def image_upload_path(instance, filename):
return f'{instance.article.id}/{filename}'
class ArticleImage(models.Model):
article = models.ForeignKey(Articles, on_delete=models.CASCADE, related_name='image')
image = models.ImageField(upload_to=image_upload_path)
def __int__(self):
return self.id
class Meta:
db_table = 'article_image'
# articles/serializers.py
# 이미지 업로드 시리얼라이저 - 이미지 직렬화
class ArticleImageSerializer(serializers.ModelSerializer):
image = serializers.ImageField(use_url=True)
class Meta:
model = ArticleImage
fields = ['image']
class ArticlesSerializer(serializers.ModelSerializer):
user = serializers.SerializerMethodField()
images = serializers.ListField(child=serializers.ImageField())
def get_user(self, obj):
return obj.user.email
#게시글에 등록된 이미지들 가지고 오기
def get_images(self, obj):
image = obj.image.all()
return ArticleImageSerializer(instance=image, many=True, context=self.context).data
class Meta:
model = Articles
fields = '__all__'
근데 admin 페이지에서 실험해보고 postman에서 해보고...
하는데 내 맘대로 안 돼
화나 답답해
그래서 일단 뒤로 미뤄두고 구현해야 하는 것들부터 구현하기로 함
300x250
반응형
GitHub 댓글