0
背景:我正在創建Django應用程序來管理收據。用戶將創建一個新的Receipt
,填寫一些與收據有關的信息(例如成本,項目,購買日期等),並上傳收據副本以供存儲。Django模型:使用DateField在FileField中設置參數
問題:我要收據* .pdf文件存儲基於用戶輸入的購買日期的文件夾中,但是,我沒有獲得self.date.strftime('%Y %B')
直到實例化之後。
示例代碼:
class Receipt(models.Model):
date = models.DateField()
item = models.CharField(max_length=128)
scan = models.FileField(upload_to='scans/{d}/'.format(d=date.strftime('%Y %B')),
max_length=100)
研究:
這SO question需要做同樣的事情,但出於不同的原因。他得到的答案是,如果不覆蓋save()
方法,這是不可能的。這將如何與文件上傳工作?
這SO question具體解決如何使用函數設置FileField
的參數;然而,它不涉及使用來自尚未完成模型的字段(即Receipt
)。
我的解決辦法是什麼?
[Django FileField with upload \ _to to determine at runtime](https://stackoverflow.com/questions/1190697/django-filefield-with-upload-to-determined-at-runtime) –
絕對不是一個該問題的重複。我的問題具體涉及到使用模型字段來設置自己的字段。 –
上述問題對於您的問題有一個完美的答案。創建一個使用你的日期字段的函數,併爲你返回文件的絕對路徑。 –