0
我試圖用OneToOneField
的反向關係建立在FileField
的upload_to
方法的路徑,像這樣:使用反向OneToOne關係在Django的FileField upload_to
def get_upload_path(asset, filename):
# Using the reverse relation `game` here
return '/'.join([asset.game.slug, filename])
class Asset(models.Model)
file = models.FileField(upload_to=get_upload_path)
class Game(models.Model):
slug = models.SlugField()
menu_image = models.OneToOneField(Asset, related_name='game', null=True, blank=True)
我可以創造一個有空資產的Game
沒問題。當我在管理員中更改遊戲時,如果通過綠色按鈕在菜單圖像中添加新的Asset
,則彈出窗口中出現RelatedObjectDoesNotExist
錯誤,指示「資產沒有遊戲」。有沒有辦法做到這一點?我發現了一些其他答案,例如here和here,但它在Django 1.9.4上不適用於我。
我在「創建遊戲後,在管理員中更改遊戲「頁面。我正在使用綠色的小按鈕來添加資產。 popup沒有將遊戲與未保存的Asset實例關聯起來? –
你必須指定當你保存遊戲時要做什麼......然後保存一個資產...如果你刪除upload_to函數,我相信你沒有問題 –
對,我知道這是問題來自哪裏,我試圖找出是否有辦法實現我想要在Django管理員內部進行的操作。 –