I'm dealing with a problem I have since 2 days, i'm trying to store an image for a car website in a database other than my car one, the creation is successful, it appears in the database but when I try to store the same image in a folder of my application, whatever I try it simply doesn't work, here's my models :
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")
I'm just a french newbie in back-end development it's probably some stupid stuff that cause the error but i'm so sick of it...
i tried to give my "media" and "car_images" folders full-control rights and other things that didn't work