在外键中设置字段的``upload_to``函数

Set ``upload_to`` function of a field in a foreign key

我有以下模型结构:

class BaseMovie(models.Model):
    movie = models.FileField('Movie')
    width = models.IntegerField('Width')
    height = models.IntegerField('Height')
    duration = models.FloatField('Duration')

class SpecialMovie(models.model):
    base_movie = models.ForeignKey(BaseMovie, 'Base movie')
    # some other stuff

背后的想法是我打算在几个模型中使用BaseMovie

我的问题是:

如何在SpecialMovie模型中设置特殊电影上传的位置?

我认为仅在 BaseMovie class 中存储元数据并在 SpecialMovie 中具有具有适当 upload_to 功能的电影字段并不令人满意,因为我必须将使用外键填充所有模型中元数据的代码复制到 BaseMovie.

upload_to可以be a callable;您可以将其设置为一个函数,该函数检查实例是否具有相关的 SpecialMovie,并相应地 return 正确的值。