Python 如何在django中将图像上载的标题更改为类中的名称
我知道这已经被问了好几次了,但我是django的新手,在文档或这里都找不到。我想上传图片到一个类和名称应具有相同的名称作为类的名称 型号:Python 如何在django中将图像上载的标题更改为类中的名称,python,django,class,model,attributes,Python,Django,Class,Model,Attributes,我知道这已经被问了好几次了,但我是django的新手,在文档或这里都找不到。我想上传图片到一个类和名称应具有相同的名称作为类的名称 型号: import os def upload_to_company(instance, filename): blocks = filename.split('.') ext = blocks[-1] filename = "%s.%s" % (Cars.name, ext) instance.title = blocks[0
import os
def upload_to_company(instance, filename):
blocks = filename.split('.')
ext = blocks[-1]
filename = "%s.%s" % (Cars.name, ext)
instance.title = blocks[0]
return os.path.join('media/', filename)
class Cars(models.Model):
image_file = models.ImageField(upload_to=upload_to_company, null=True, blank=True)
name = models.CharField(max_length=200)
我怎样才能得到cars类的名称?我以为Cars.name
可以,但实际上不行
有人能帮忙吗
谢谢 要获取类的名称,请使用
Cars.__name__
如果您通过一个对象(例如,camaro=Cars()
),请使用
如果希望图像的名称取决于其他模型属性之一(例如,name
)
注意:这将始终替换现有文件
最后,正确缩进:
Cars
类似乎是在upload\u to\u company
函数中定义的。谢谢!但是现在我得到了类名,比如汽车,而不是用户输入的品牌?因此,用户有一个类别名称cars。他添加了一个名为camero的类别,然后他上传的图片应该有这个名称?请解释你打算做什么。你的问题很清楚,是关于课堂的。如果你现在想要汽车模型,那么你应该采取不同的行动。对不起,我想我的问题问错了。确切地说,我想要汽车型号的名称,所以我想要汽车类的name属性的值。嗨,当我想要删除旧图像时,我该怎么做?我只希望每辆车保存一张图像
camaro.__class__.__name__
def upload_to_company(instance, filename):
if hasattr(instance, 'imgpath'):
if os.path.exists(instance.imgpath):
os.remove(instance.imgpath)
blocks = filename.split('.')
ext = blocks[-1]
filename = "%s.%s" % (instance.name, ext)
instance.title = blocks[0]
instance.imgpath = os.path.join('media', filename)
return instance.imgpath