upload_to パラメータを使用して呼び出し可能な関数を渡して、Django モデルの FileFied/ImageField などを動的に変更できることを私は知っています。
upload_to によって呼び出される関数には、データベースに保存されていないファイルのインスタンス (instance) とそのインスタンスのファイル名 (filename) の 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?) から format_badge_name に値を渡すことは可能ですか?