Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
Django-将额外参数传递到upload_到可调用函数_Django_Django Models - Fatal编程技术网

Django-将额外参数传递到upload_到可调用函数

Django-将额外参数传递到upload_到可调用函数,django,django-models,Django,Django Models,我知道您可以使用upload_to参数传递一个可调用函数来动态更改Django模型中的FileFied/ImageField等 upload_调用的函数传递给2个变量,即数据库文件中保存的非实例(实例)和所述实例的文件名(文件名) 如果我在模型中使用ImageField和其他(Char等)字段,是否可以将这些字段中的值放入同一个可调用函数中 比如说 class Badge(models.Model): def format_badge_name(instance, filename):

我知道您可以使用upload_to参数传递一个可调用函数来动态更改Django模型中的FileFied/ImageField等

upload_调用的函数传递给2个变量,即数据库文件中保存的非实例(实例)和所述实例的文件名(文件名)

如果我在模型中使用ImageField和其他(Char等)字段,是否可以将这些字段中的值放入同一个可调用函数中

比如说

class Badge(models.Model):

  def format_badge_name(instance, filename):
    _filetype = os.path.splitext(filename)[1]
    _category = 'foo'
    _name = os.path.splitext(filename)[0]
    _filename = "%s-%s-%s%s" % (_category, _name, 'private', _filetype)

    return "badges/%s" % _filename

  name = models.CharField(max_length=16, help_text="Name for Badge")
  file = models.ImageField(upload_to=format_badge_name)

是否可以将name(self.name?)中的值传递到格式\u badge\u name?

实例
变量是
badge()
实例。您可以像往常一样访问它的属性

def format_badge_name(instance, filename):
    instance.name
    instance.file
    ...
您可以将
实例命名为“self”
,这样可能更容易理解:

def format_badge_name(self, filename):
    self.name
    self.file
    ...

你想做什么?