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的ImageField路径中设置变量?_Python_Django_Django Models - Fatal编程技术网

Python 如何在Django的ImageField路径中设置变量?

Python 如何在Django的ImageField路径中设置变量?,python,django,django-models,Python,Django,Django Models,这是我的型号.py: class Group_Photo(models.Model): group_id = models.ForeignKey(Group) photo = models.ImageField(upload_to="static/image/group/" + group_id + "/") 我想上传图片到一个目录,这是一个小组。 例如,如果组id=3 上传到=“static/image/group/3/” 我该怎么办 对不起,这是错误 文件“/models

这是我的
型号.py

class Group_Photo(models.Model):

    group_id = models.ForeignKey(Group)
    photo = models.ImageField(upload_to="static/image/group/" + group_id + "/")
我想上传图片到一个目录,这是一个小组。 例如,如果
组id=3

上传到=“static/image/group/3/”

我该怎么办

对不起,这是错误

文件“/models.py”,第161行,在组图中 photo=models.ImageField(上传到=“static/image/group/”+group\u id+“/”)类型错误:无法将“ForeignKey”对象转换为str 含蓄地


upload\u to
参数可以是一个函数:

该函数接受两个参数—文件要附加到的模型的实例和文件的原始名称。它必须返回保存文件的相对路径。它将被附加到
MEDIA\u ROOT
设置中定义的路径


上面的示例使用基于组的数字id的目录。显然,您可以使用其他字段,例如,要使用slug(如果有),只需将
instance.group.id
替换为
instance.group.slug

upload\u to
参数可以是一个函数:

该函数接受两个参数—文件要附加到的模型的实例和文件的原始名称。它必须返回保存文件的相对路径。它将被附加到
MEDIA\u ROOT
设置中定义的路径


上面的示例使用基于组的数字id的目录。显然,您可以使用其他字段,例如使用slug(如果有),只需将
instance.group.id
替换为
instance.group.slug

此代码是否生成错误?当您尝试运行代码时,它会输出什么?@Renier对不起,我忘记写错误了。我添加了。@有人说“不,你不能”如果我不能在多个目录中上载图像,我是否必须只在一个目录中上载?此代码是否生成错误?当您尝试运行代码时,它会输出什么?@Renier对不起,我忘记写错误了。我又加了一句。@有人说“不,你不能”如果我不能在几个目录中上传图片,我必须只在一个目录中上传吗?非常感谢。我的日文文件没有提到这一点。我现在就试试。谢谢。当我启动runserver时,没有发生任何错误。稍后我会实施上传表单。非常感谢。我的日文文件没有提到这一点。我现在就试试。谢谢。当我启动runserver时,没有发生任何错误。稍后我将实现上传表单。
def group_based_upload_to(instance, filename):
    return "image/group/{}/{}".format(instance.group.id, filename)

class Group_Photo(models.Model):
    group = models.ForeignKey(Group)
    photo = models.ImageField(upload_to=group_based_upload_to)