我知道您可以使用upload_to参数来传递一个可调用的函数,以动态更改Django模型中的FileFied/ImageField等。
由upload_to调用的函数被传递给两个变量,未保存在数据库中的文件的实例(实例)和所述实例的文件名(文件名)。
如果我在模型中使用ImageField和其他(字符等)字段,是否可以将这些字段的值放入同一个可调用的函数中。
例如。
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吗?
发布于 2012-05-30 13:01:25
instance变量是Badge()实例。您可以照常访问它的属性
def format_badge_name(instance, filename):
instance.name
instance.file
...您可以将instance命名为'self',这样可能更容易理解:
def format_badge_name(self, filename):
self.name
self.file
...https://stackoverflow.com/questions/10809620
复制相似问题