Моя конфигурация djanco не загружает изображения, но сохраняет их в базе данных без каких-либо ошибок

У меня проблема уже 2 дня, я пытаюсь сохранить изображение для автомобильного сайта в базе данных, отличной от моей автомобильной, создание проходит успешно, оно появляется в базе данных, но когда я пытаюсь сохранить это же изображение в папке моего приложения, что бы я ни пробовал, оно просто не работает, вот мои модели :

class Cars(models.Model):
    marque          = models.CharField(max_length=60)
    modele          = models.CharField(max_length=60)
    motorisation    = models.CharField(max_length=60)
    couleur         = models.CharField(max_length=60)
    carburant       = models.CharField(max_length=60)

    annee_modele    = models.IntegerField()
    kilometrage     = models.IntegerField()
    nbr_porte       = models.IntegerField()
    nbr_place       = models.IntegerField()
    puiss_fiscale   = models.IntegerField()    #En chevaux fiscaux
    puiss_din       = models.IntegerField()    #En chevaux DIN

    a_vendre        = models.BooleanField(default=True)

class CarImage(models.Model):
    car = models.ForeignKey(Cars, related_name="images", on_delete=models.CASCADE)
    image = models.ImageField(upload_to='car_images/')models.py

Post view :

class manage_cars(View):

    parser_classes = (MultiPartParser, FormParser)

    def post(self, request, *args, **kwargs):
        c_serializer = car_serializer(data=request.POST)
        
        if c_serializer.is_valid():
            car_instance = c_serializer.save()
            
            images = request.FILES.getlist('image')
            print(images)
            for image in images:
                
                image_path = handle_uploaded_image(car_instance, image)
            
                # Créer l'objet CarImage avec le chemin de l'image
                CarImage.objects.create(car=car_instance, image=image_path)
            
            return JsonResponse({"message": "Voiture et images sauvegardées avec succès"}, status=201)
        else:
            return JsonResponse(car_serializer.errors, status=400)
serializers.py 

from rest_framework import serializers
from .models import *

class car_serializer(serializers.ModelSerializer):
    class Meta:
        model = Cars
        fields = "__all__"serializers.py
settings.py :

MEDIA_URL = "/media/"

MEDIA_ROOT = os.path.join(BASE_DIR, "media")

Я просто французский новичок в разработке back-end, возможно, это какая-то глупая вещь, которая вызывает ошибку, но я так устал от этого...

я пытался дать папкам "media" и "car_images" права полного контроля и другие вещи, которые не сработали

Похоже, вы столкнулись с проблемой, когда изображения, загруженные через ваше приложение Django, не сохраняются в указанной папке (car_images/), несмотря на то, что они успешно сохранены в базе данных. Вот несколько вещей, которые вы можете проверить для устранения проблемы:

  1. Проверка разрешений на файлы: Убедитесь, что каталог, указанный MEDIA_ROOT (os.path.join(BASE_DIR, "media")), имеет соответствующие разрешения, позволяющие приложению Django записывать в него файлы. Убедитесь, что каталог доступен для записи пользователю, запускающему сервер приложений Django (например, chmod 755 media).

  2. Проверка загрузки изображений: Убедитесь, что изображения корректно принимаются вашим представлением Django. Вы можете сделать это, напечатав images в вашем manage_cars представлении, чтобы увидеть, правильно ли получены изображения из запроса.

  3. Проверьте путь загрузки: Убедитесь, что параметр upload_to в вашей модели CarImage правильно настроен. Параметр upload_to задает каталог внутри MEDIA_ROOT, в котором должны храниться загружаемые файлы. В вашем случае это должно быть upload_to='car_images/'.

  4. Правильно обрабатывайте загрузку файлов: Убедитесь, что вы правильно обрабатываете загрузку файлов в вашем представлении Django. Вы используете request.FILES.getlist('image') для получения загруженных изображений, что кажется правильным. Однако убедитесь, что enctype формы установлен на multipart/form-data в вашей HTML-форме.

  5. Подтвердите процесс сохранения изображений: Проверьте функцию handle_uploaded_image (которая, по-видимому, отвечает за сохранение изображения на диск), чтобы убедиться, что она правильно сохраняет изображения в нужное место (MEDIA_ROOT/car_images/). Возможно, вы захотите вывести image_path в цикле,

    чтобы
  6. проверить,
  7. что

    он

'

Систематически проверяя эти пункты, вы сможете выявить и решить проблему, связанную с тем, что изображения не сохраняются в указанной папке. Если вы продолжаете испытывать трудности, не стесняйтесь предоставить дополнительные сведения или сообщения об ошибках для получения дальнейшей помощи.

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