【发布时间】:2020-06-24 20:35:16
【问题描述】:
我正在创建一个基于 Django 的 Web 应用程序,其中 Post 模型将有多个图像和视频。我想上传图片模型中的多张图片和视频模型中的视频
# models.py
#Post Model
class Post(models.Model):
# Owner / user
user = models.ForeignKey(to=User, on_delete=models.CASCADE)
caption = models.CharField(max_length=64, verbose_name='Post Caption')
body = models.CharField(max_length=1024, verbose_name='Post Body')
def __str__(self):
return self.user.email
def get_author(self):
return self.user.email
class Image(models.Model):
post = models.OneToOneField(to=Post, on_delete=models.CASCADE)
image = models.ImageField()
class Video(models.Model):
post = models.OneToOneField(to=Post, on_delete=models.CASCADE)
image = models.FileField()
# serializers.py
class PropertySerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Property
fields = '__all__'
def create(self, validated_data):
media_files = self.context.get('view').request.FILES
post = Property.objects.create(
**validated_data
)
for file in media_files.values():
"""
if file is video:
then file will be saved in video model
if file is image:
then file will be saved in image model
How to do it?
"""
以及如何验证文件是否只是图像或视频。如果有人发布除图像或视频之外的任何其他内容,则会出现验证错误。有什么好的办法吗?
【问题讨论】:
标签: python django django-models django-rest-framework django-serializer