Django tinymce не загружает изображение в продакшене

У меня проблемы с загрузкой изображений в режиме производства с помощью django tinymce. Он загружает изображения в режиме разработки, но не в режиме производства. Было бы здорово, если бы кто-нибудь помог мне разобраться с этим.

settings.py

views.py

  import os

from django.conf import settings
from django.http import JsonResponse
from django.utils import timezone
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def upload_image(request):
    if request.method == "POST":
        file_obj = request.FILES['file']
        file_name_suffix = file_obj.name.split(".")[-1]
        if file_name_suffix not in ["jpg", "png", "gif", "jpeg", ]:
            return JsonResponse({"message": "Wrong file format"})

        upload_time = timezone.now()
        path = os.path.join(
            settings.MEDIA_ROOT,
            'tinymce',
            str(upload_time.year),
            str(upload_time.month),
            str(upload_time.day)
        )
        # If there is no such path, create
        if not os.path.exists(path):
            os.makedirs(path)

        file_path = os.path.join(path, file_obj.name)

        file_url = f'{settings.MEDIA_URL}tinymce/{upload_time.year}/{upload_time.month}/{upload_time.day}/{file_obj.name}'

        if os.path.exists(file_path):
            return JsonResponse({
                "message": "file already exist",
                'location': file_url
            })

        with open(file_path, 'wb+') as f:
            for chunk in file_obj.chunks():
                f.write(chunk)

        return JsonResponse({
            'message': 'Image uploaded successfully',
            'location': file_url
        })
    return JsonResponse({'detail': "Wrong request"})

urls.py

from django.contrib import admin
from django.urls import path, include
from django.contrib.auth import views as auth_views
from . import views as img_views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls' , namespace='blog')),
    path('tinymce/', include('tinymce.urls')),
    path('upload_image/', img_views.upload_image),
]
if settings.DEBUG:
   urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

apache2.conf

Alias /static /home/omid/pypro/staticfiles
        <Directory /home/omid/pypro/staticfiles>
                Require all granted
        </Directory>

        Alias /media /home/omid/pypro/media/
        <Directory /home/omid/pypro/media>
                Require all granted
        </Directory>

        <Directory /home/omid/pypro/pypro>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

Когда я пытаюсь загрузить изображения в режиме производства, изображения, которые уже находятся в медиа-каталоге, могут быть загружены. Но новые изображения (не в медиа директории не загружаются).

Я получаю HTTP Error: 500

Я нашел это. Мне просто нужно было дать разрешение на чтение и запись в каталог мультимедиа

Вернуться на верх