Django - 将额外参数传递给 upload_to 可调用函数

2023-12-10

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

upload_to 调用的函数传递了 2 个变量,即未保存在数据库中的文件的实例 (instance) 和所述实例的文件名 (filename)。

如果我在模型中使用 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)

是否可以将名称(self.name?)中的值传递到format_badge_name?


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

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

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

def format_badge_name(self, filename):
    self.name
    self.file
    ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django - 将额外参数传递给 upload_to 可调用函数 的相关文章

随机推荐

  • v-for Loop 内的参考文献 vue v3.2.25 或更高版本

    我正在读vue 3 的文档我决定测试一下refs在我当地的开发环境中 我用的是vue版本3 2 31并根据设置我的项目vue官方指南 因此 为了测试组件中的 refs 我只需将代码复制并粘贴到this url那就是操场vue 网站 这意味着
  • 在 bash 中获取位置参数

    我有一个名为 foo 的 bash 脚本 其参数数量可变 第一个是必需的 即 foo a1 b2 b3 b4 我知道在 bash 中 1 会得到参数 a1 但是有没有办法得到所有其余的参数 或 似乎让我得到了所有参数 包括 a1 切片 ar
  • 通过嵌套连接选择最高的序列号

    我想为每个客户 ID 获取最大序列号 最大序列号将根据最高银行帐户余额计算 该表有100000条记录 Tables 客户端序列表 T1 ClID SeqId 1 11 1 12 1 13 1 14 1 15 2 16 2 17 2 18 2
  • C# 拖放问题

    我有一个 C NET 3 5 应用程序 允许从树中拖动项目并将它们作为文件拖放到文件夹中 这是我的代码 String absolutePathToFile get absolute path DataObject dataObject ne
  • 在我的 Ember.js 应用程序中的 localStorage.clear() 或 deleteRecord() 之后,本地存储数据被复活

    我观察到数据复活后localStorage clear or deleteRecord jsbin 示例 在我的 ember 应用程序中被调用 请按照以下步骤复制问题 打开 chrome web dev gt 资源 gt 本地存储 gt h
  • 根据单元格值脚本将行移动到另一个工作表

    希望使用脚本根据谷歌表格中的值移动单元格 在观看了一些有关基础知识的视频并使用网站上找到的代码之后 尝试使这适用于我的电子表格 这对所有这些都是超级绿色的 function doneCopy var app SpreadsheetApp v
  • Python 请求重定向登录

    这是一个网站http pro wialon com 我想使用 python requests 模块登录 登录和通过是演示 import requests with requests Session as c url http pro wia
  • 如何在 webview 中从我的资源加载图片?

    我想加载 WebView 中可绘制资源中设置的名为 map png 的图片 我在另一个答案中发现了这个建议 webview loadUrl file 但我不明白如何正确设置它 我总是收到错误消息 提示找不到所请求的文件 这是我写的 publ
  • 如何在CreateProcess实例化的命令中使用或扩展环境变量?

    下面的代码利用CreateProcess使用环境变量运行命令 在这里 它尝试运行notepad APPDATA test txt 如果我跑notepad APPDATA test txt直接在Windows CMD APPDATA 将被扩展
  • bash 中的命令替换与函数调用

    我正在从一本书中编写一个 shell 脚本 有一个示例 我正在创建一个函数并稍后调用该函数 function name 但据我所知 我可以通过编写函数名称来调用函数 那么 用函数名调用函数和用函数调用有什么区别 function name
  • 正则表达式获取以冒号分隔的键值对中的文本

    我这里有我的正则表达式示例 https regex101 com r kE9mZ7 1 对于以下字符串 key 1 一些文本 可能是逗号 以分号结尾 key 2 可能没有结束分号的文本 但也可以是 我想做如下的事情 var regEx at
  • VB CStr、CDate、CBool​​ 等与 DirectCast 进行无需转换的投射

    我通常避免使用 VB 的内置转换函数 CStr CDate CBool CInt 等 除非我需要进行实际转换 如果我只是进行转换 例如从对象到字符串 我通常使用 DirectCast 或 TryCast 假设 CStr 等正在执行一些我不需
  • 如何保存onClickListener的状态?

    我有一个实现多个 onClickListener 的程序 因此 随着用户点击按钮的进展 是否有办法保存用户在离开应用程序或被销毁之前使用的 onClick 侦听器 使用共享首选项来实现这一点 每当您单击任何按钮时 都会存储按钮名称及其值 e
  • Android 上的 idHTTP 不可接受错误 406

    我正在尝试使用 idHTTP 和 PHP 脚本在 MySQL 数据库上发布插入 这是要插入数据库的 PHP 脚本 mysqli new mysqli servidor usuario senha banco Caso algo tenha
  • 为什么我无法编译这个命令行 OpenCV Mac 应用程序?

    以下是我的步骤 1 创建命令行工具项目 OpenCV 2 在 usr local lib下的工程中添加后缀为2 4 2的文件 如 libopencv calib3d 2 4 2 dylib 3 将 usr local include 添加到
  • Kiwi 和 CocoaPods 具有静态共享库

    我有一个包含 3 个项目的工作区 MyApp Common Pods Common是MyApp依赖的公共库 我想设置 CocoaPods 和 Kiwi 以便在此项目中正常工作 我该怎么办 I found https stackoverflo
  • Slickgrid:最终列自动调整大小以使用所有剩余空间

    我正在使用 SlickGrid 并努力寻找一个优雅的解决方案来解决以下问题 所有列在首次渲染时必须具有特定的初始宽度 但之后可以调整大小 调整窗口大小时 最后一列应自动填充剩余的列空间 我见过 使一列填充 SlickGrid 中的剩余空间
  • 使用新的架构更改更新 LinqtoSql 数据库?

    我有一个已发布到市场的 Windows Phone 7 应用程序 我将 Sql CE 与 LinqToSql 一起使用 当应用程序运行时 它会通过连接字符串检查数据库是否存在 如果不存在则创建数据库 using CheckbookDataC
  • 在 Google Apps 脚本中转义正则表达式文字

    我不知道为什么这不起作用 我已经通过我在网上找到的更好的正则表达式工具之一来验证它 并且我之前使用的似乎是转义字符 号使其成为字面 但 Google 脚本一直抱怨 无效量词 第 2 行 这是我的脚本 省略了某些个人详细信息 这是为了清理电子
  • Django - 将额外参数传递给 upload_to 可调用函数

    我知道您可以使用 upload to 参数传递可调用函数来动态更改 Django 模型中的 FileFied ImageField 等 upload to 调用的函数传递了 2 个变量 即未保存在数据库中的文件的实例 instance 和所