我希望我能找到一種方法來調整上傳的影像檔案的大小,然后再將其放入資料庫。我是使用 REST 的 Django 新手,所以我不確定如何做到這一點。似乎任何被序列化的東西都只是一種自動鐵路進入模型。我想這就是重點(這當然是一件容易設定的事情)。
澄清一下,我已經有一個功能經過測驗和作業,可以為我調整影像大小。可以根據需要進行修改,對我來說沒問題。問題實際上是關于“截取”影像,進行更改,然后將其放入模型中。有人可以幫助我提出一些策略來完成這項作業嗎?謝謝。
該模型:
class Media(models.Model):
objects = None
username = models.ForeignKey(User, to_field='username',
related_name="Upload_username",
on_delete=models.DO_NOTHING)
date = models.DateTimeField(auto_now_add=True)
media = models.FileField(upload_to='albumMedia', null=True)
file_type = models.CharField(max_length=12)
MEDIA_TYPES = (
('I', "Image"),
('V', "Video")
)
media_type = models.CharField(max_length=1, choices=MEDIA_TYPES, default='I')
user_access = models.CharField(max_length=1, choices=ACCESSIBILITY, default='P')
class Meta:
verbose_name = "MediaManager"
帶有 post 方法的視圖:
class MediaView(APIView):
queryset = Media.objects.all()
parser_classes = (MultiPartParser, FormParser)
permission_classes = [permissions.IsAuthenticated, ]
serializer_class = MediaSerializer
def post(self, request, *args, **kwargs):
user = self.request.user
print(user.username)
request.data.update({"username": user.username})
media_serializer = MediaSerializer(data=request.data)
# media_serializer.update('username', user.username)
if media_serializer .is_valid():
media_serializer.save()
return Response(media_serializer.data, status=status.HTTP_201_CREATED)
else:
print('error', media_serializer.errors)
return Response(media_serializer.errors,status=status.HTTP_400_BAD_REQUEST)
序列化器:
class MediaSerializer(serializers.ModelSerializer):
class Meta:
model = Media
fields = '__all__'
def to_representation(self, instance):
data = super(MediaSerializer, self).to_representation(instance)
return data
uj5u.com熱心網友回復:
您可以使用validate方法來驗證和/或更改data字典中的值。
class MediaSerializer(serializers.ModelSerializer):
...
def validate(self, data):
value_from_form = data['value_from_form']
value_from_form = 'Something else'
data['value_from_form'] = value_from_form
return data
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/431783.html
標籤:django 休息 django-rest-framework django-序列化器
上一篇:命名用戶詳細資訊的RESTAPI
