Pergunta

I am developing an application with Python Django on Windows I'm trying to add an image upload field to one of my class but I get errors, I have to mention that I need to give a relative path to the settings.py so I can easily migrate my code to another platform

how should I fill the following variables in settings.py to get them work

MEDIA_ROOT = #root to my project

MEDIA_URL = #url 

And in the models.py I have

class ProdcutImage(models.Model):
    product = models.ForeignKey(Product)
   image = models.ImageField(upload_to = "/products" )

I need the images to be uploaded in this folder :

"MY_PROJECT_ADDRESS/static/images/products"

Your helps will be appreciated

Foi útil?

Solução

I suggest you to follow this answer

Need a minimal Django file upload example

and it is better that your upload file go to a different directory than static but if you want to upload it to this directory:

class ProdcutImage(models.Model):
    product = models.ForeignKey(Product)
   image = models.ImageField(upload_to = "static/images/products" )

settings.py

import os
PROJECT_ROOT = os.path.realpath(os.path.dirname(__file__))

MEDIA_ROOT = PROJECT_ROOT + '/static/images/products/'
MEDIA_URL = '/media/'  #put whatever you want that when url is rendered it will be /media/imagename.jpg

and in urls.py

from django.conf.urls.static import static
from django.conf import settings


+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)  #at the end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top