У меня есть модель с ImageField и функцией для изменения пути загрузки
class Images(models.Model):
def upload_path(self, filename):
return os.path.join(settings.TOOLS_IMAGE_UPLOADS, self.get_artworkID(),
filename)
image = models.ImageField(upload_to=upload_path)
artworkID = models.IntegerField(null=True, blank=True)
def __str__(self):
if self.title == "" or not self.title:
return str(self.image)
return self.title
def get_artworkID(self):
if self.artworkID:
return str(self.artworkID)
return 'temp'
Значение TOOLS_IMAGE_UPLOADS
равно
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
BASE_DIR = os.path.dirname(PROJECT_DIR)
MEDIA_NAME_FOLDER = 'media'
MEDIA_ROOT = os.path.join(BASE_DIR, MEDIA_NAME_FOLDER)
TOOLS_IMAGE_UPLOADS = os.path.join(MEDIA_ROOT, 'uploads', 'images')
Проблема в том, что возвращенный URL-адреспри визуализации объекта Image через администратор Django или остальные API неверны
Возвращенный путь: http://localhost:8000/media/webapp/artrights/media/uploads/images/temp/file.png
Реальный путь к файлу: http://localhost:8000/media/uploads/images/temp/file.png
Я делаючто-то не так или мне просто нужно сделать собственную функцию для возврата правильного пути?