Django upload_to из ImageField не работает
У меня есть модель, в которой я хочу хранить изображение обложки для публикации, вот код для этого поля в models.py:
cover = models.ImageField(upload_to="covers/")
У меня в файле settings.py:
MEDIA_URL='/media/'
MEDIA_ROOT=os.path.join(BASE_DIR,'media')
и в корне проекта у меня есть media/covers/: структура папки
Я сохраняю модель следующим образом:
views.py
title = request.POST["title"]
description = request.POST["description"]
initial_bid = int(request.POST["initial_bid"])
category = request.POST["category"]
cover = request.POST["cover"]
save_auction(title, description, initial_bid, category, cover, User(request.user.id))
def save_auction(title, description, initial_bid, category, cover, author):
auction = Auction(
title=title,
description=description,
initial_bid=initial_bid,
category=category,
status=0,
cover=cover,
author= author,
winner = None
)
auction.save()
Модель сохраняется в базе данных, но изображение не сохраняется в нужной папке. Я попробовал определить функцию следующим образом
def user_cover_path(instance, filename):
return 'user_{0}/covers/{1}'.format(instance.user.id, filename)
cover = models.ImageField(upload_to=user_cover_path)
но не сработало