在我看來,我可以將影像的解析度限制在特定的寬度和高度范圍內,但我不知道如何使用這種方法來限制影像的上傳大小。有針對這個的解決方法嗎?
我的觀點:
class WatchListAV(generics.ListCreateAPIView):
permission_classes = [AdminOrReadOnly]
parser_classes = [MultiPartParser, FormParser] # Support both image and text upload.
queryset = WatchList.objects.all()
serializer_class = WatchListSerializer
pagination_class = WatchListLimitOffsetPagination
filter_backends = [filters.SearchFilter, filters.OrderingFilter]
search_fields = ['title', 'platform__name']
ordering_fields = ['avg_rating']
def perform_create(self, serializer):
if not serializer.validated_data['image']:
raise ValidationError('No image uploaded.')
else:
w, h = get_image_dimensions(serializer.validated_data['image'])
if w > 8000:
raise ValidationError(f"Image's width is too long.")
if w < 500:
raise ValidationError(f"Image's width is too short")
if h > 8000:
raise ValidationError(f"Image's height is too tall.")
if h < 500:
raise ValidationError(f"Image's height is too short.")
serializer.save()
uj5u.com熱心網友回復:
假設serializer.validated_data['image']是 的一個實體django.db.models.ImageField,您可以檢查.size.
來源:https ://github.com/django/django/blob/main/django/db/models/fields/files.py#L69
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/476434.html
