我正在尝试使用OneToOneField
的反向关系在upload_to
的{{1}}方法中构建路径,如下所示:
FileField
我可以用空资产创建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
错误,说“资产没有游戏”。有没有办法实现这个目标?我找到了一些其他答案,就像here和here一样,但它在Django 1.9.4上对我不起作用。
答案 0 :(得分:1)
问题出在你的'get_upload_path'函数中,因为你正在调用asset.game.slug ...但你还没有定义任何游戏......