首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django -将额外的参数传递到upload_to可调用函数

Django -将额外的参数传递到upload_to可调用函数
EN

Stack Overflow用户
提问于 2012-05-30 11:26:37
回答 1查看 2.3K关注 0票数 5

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

由upload_to调用的函数被传递给两个变量,未保存在数据库中的文件的实例(实例)和所述实例的文件名(文件名)。

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

例如。

代码语言:javascript
复制
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?)传递值吗?进入format_badge_name吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-30 13:01:25

instance变量是Badge()实例。您可以照常访问它的属性

代码语言:javascript
复制
def format_badge_name(instance, filename):
    instance.name
    instance.file
    ...

您可以将instance命名为'self',这样可能更容易理解:

代码语言:javascript
复制
def format_badge_name(self, filename):
    self.name
    self.file
    ...
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10809620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档