Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django中指定带有upload_to的目录和函数_Python_Django_Image Upload_File Storage - Fatal编程技术网

Python 如何在django中指定带有upload_to的目录和函数

Python 如何在django中指定带有upload_to的目录和函数,python,django,image-upload,file-storage,Python,Django,Image Upload,File Storage,我有两种车型和配置文件: class Car(models.Model): name = models.CharField(max_length=200) image_file = models.ImageField(upload_to=naming, null=True, blank=True) class Profile(models.Model): name = models.CharField(max_length=200) image_file = m

我有两种车型和配置文件:

class Car(models.Model):
    name = models.CharField(max_length=200)
    image_file = models.ImageField(upload_to=naming, null=True, blank=True)

class Profile(models.Model):
    name = models.CharField(max_length=200)
    image_file = models.ImageField(upload_to='profiles', null=True, blank=True)
我需要命名功能,但我也希望上传的文件是在文件夹车,而不仅仅是在媒体目录

有没有办法将它们上传到那个文件夹并调用那个函数? 在过去,我只能找到一种方法,但不能找到两种方法


提前谢谢

我不明白同时上传和调用函数是什么意思,但函数确实被调用了,否则它不会生成任何路径。对于第一个问题,您可以执行以下操作:

def naming(instance, file_name):                                                 
    model_name = instance.__class__.__name__
    return os.path.join(model_name, file_name)

现在,我上传的个人资料图片将保存在
media/profiles
中,我上传到车上的图片将上传到
media
中,但我希望它在
media/cars
中。如果我使用你的,它会像那样存储,但是它不在数据库中。如果我打印instance.image\u file.path我仍然可以看到旧的文件夹结构
/media/myfile.png