Python 如何在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

我知道这已经被问了好几次了,但我是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]
    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