Django upload_to from ImageField 不起作用

问题描述 投票:0回答:1

我有一个模型,我想在其中存储出版物的封面图像,这是 models.py 中该字段的代码:

cover = models.ImageField(upload_to="covers/")

我的settings.py中有:

MEDIA_URL='/media/'
MEDIA_ROOT=os.path.join(BASE_DIR,'media')

在项目的根目录中我有 media/covers/: folder structure

我保存模型的方式如下:

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)

但没有成功

python django django-models
1个回答
0
投票

要获取在 html 文件中输入的图像,而不是

cover = request.POST["cover"]
尝试:

cover = request.FILES["cover"]
© www.soinside.com 2019 - 2024. All rights reserved.