gpt4 book ai didi

python - 将函数从我的 django 方法中移出

转载 作者:行者123 更新时间:2023-11-30 23:59:40 24 4
gpt4 key购买 nike

我认为有一个方法可以上传图像,然后将图像保存到数据库对象中。我想从我的 View 中删除它,并将其放入我的模型或单独的文件中。

filename_bits = request.FILES['image'].name.split(".")
filename_bits.reverse()
extension = filename_bits[0]

# create filename and open a destination
filename = '_'+force_unicode(random.randint(0,10000000))+'_'+force_unicode(random.randint(0,10000000))+'.'+force_unicode(extension)
path = 'assests/uploads/'+filename
destination = open(path, 'wb+')

# write to that destination
for chunk in request.FILES['image'].chunks():
destination.write(chunk)
destination.close()

picture = CarPicture(car=car, path=path, filename=filename)
picture.save()

如您所见,它上传一个文件(创建随机文件名后),然后创建一个 carPicture 对象并保存它。

有什么想法吗?这可以在模型中通过覆盖 save 方法来完成吗?

最佳答案

您应该考虑使用 ImageField在你的模型中。例如,在 models.py 中,您将拥有:

def get_random_filename(car_picture, filename):
extension = filename.split('.')[-1]
return u'_%s_%s.%s' % (random.randint(0,10000000),
random.randint(0,10000000),
extension)

class CarPicture(models.Model):
title = models.TextField()
image = models.ImageField(upload_to=get_random_filename)

在您看来,您只会:

picture = CarPicture(title="Some Title", image=request.FILES['image'])
picture.save()

这将使用随机生成的文件名将图像存储到磁盘,并将数据库中的图像字段设置为图像的路径。您还可以通过以下方式获取图像的 url:

picture.image.url()

因此模板可能具有:

<img src="{{picture.image.url}}" title="{{picture.image.title}}"/>

关于python - 将函数从我的 django 方法中移出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206422/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com