class Hoge(models.Model): bar_file = models.FileField(u"barファイル", upload_to='{0}/{1}/{2}'.format( UPLOAD_BASE_PATH, 'bar_files', id), help_text=u'barファイルを選択して下さい')
のように、 アップロードするファイル名にidを使いたかったのでこのように書いてしまうと、 ModelのidはFieldなので困った。
uuid = UUIDField(auto=True)
を使ったとしても一緒。 あくまでも、Modelクラスの変数はFieldだ。
Django FileField with upload_to determined at runtime - Stack Overflow
ここを見ると、
file = models.FileField( upload_to=lambda instance, filename: '/'.join(['mymodel', str(instance.pk), filename]), )
のような具合にしたら、 インスタンスが取れそうだ