pp upload: size limit in django settings

This commit is contained in:
AdrienLSH
2024-02-08 08:54:13 +01:00
parent f910dc5a5b
commit c94cc41343
3 changed files with 9 additions and 3 deletions

View File

@ -14,7 +14,7 @@ def upload_to(instance, filename: str):
# Create your models here. # Create your models here.
class ProfileModel(models.Model): class ProfileModel(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE)
avatar_url = models.ImageField(upload_to=upload_to, default="./profiles/static/avatars/default.avif") #blank=True, null=True) avatar_url = models.ImageField(upload_to=upload_to, default="./profiles/static/avatars/default.avif")
def get_game(self) -> int: def get_game(self) -> int:
for game in game_manager._game_list: for game in game_manager._game_list:

View File

@ -8,6 +8,8 @@ from rest_framework.authentication import SessionAuthentication
from django.http import HttpRequest from django.http import HttpRequest
from django.db.models import QuerySet from django.db.models import QuerySet
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.files.uploadedfile import InMemoryUploadedFile
from django.conf import settings
from .serializers import ProfileSerializer from .serializers import ProfileSerializer
from .models import ProfileModel from .models import ProfileModel
@ -55,8 +57,8 @@ class MyProfileViewSet(viewsets.ModelViewSet):
def perform_update(self, serializer, pk=None): def perform_update(self, serializer, pk=None):
profile: ProfileModel = self.get_object() profile: ProfileModel = self.get_object()
avatar = self.request.data.get("file", None) avatar : InMemoryUploadedFile = self.request.data.get("file", None)
if (avatar is not None and avatar.size <= 2 * 1024 * 1024): if (avatar is not None and avatar.size <= settings.PROFILE_PICTURE_MAX_SIZE):
if (profile.avatar_url.name != "./profiles/static/avatars/default.avif"): if (profile.avatar_url.name != "./profiles/static/avatars/default.avif"):
profile.avatar_url.storage.delete(profile.avatar_url.name) profile.avatar_url.storage.delete(profile.avatar_url.name)
profile.avatar_url = avatar profile.avatar_url = avatar

View File

@ -160,3 +160,7 @@ STATIC_URL = 'static/'
# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
# Profile picture upload limit
PROFILE_PICTURE_MAX_SIZE = 2 * 1024 * 1024 # 2MB