gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:49:32 25 4
gpt4 key购买 nike

我知道您可以使用 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)

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

最佳答案

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

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

您可以命名 instance 'self' ,可能更容易理解:
def format_badge_name(self, filename):
self.name
self.file
...

关于Django - 将额外的参数传递给 upload_to 可调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10809620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com