Django模型字段依赖于实例

时间:2014-05-30 02:34:23

标签: python database django

我正在尝试创建一个依赖于实例的模型字段(特别是外键的实例)。

示例:

class User(models.Model):
    name = models.CharField()
    ...

class Entry(models.Model):
    user = models.ForeignKey(User)
    file = models.FileField(upload_to=user.name)

如您所见,我希望文件“upload_to”参数取决于用户。有一个简单的方法吗?

1 个答案:

答案 0 :(得分:3)

upload_to也可以是一个可调用的函数,例如一个函数,它将被调用以获取上传路径,包括文件名。

此callable必须能够接受两个参数,并返回一个Unix样式的路径(带有正斜杠)以传递给存储系统。

def _upload_to(instance, filename):
    return str(instance.user.name)

class Entry(models.Model):
    user = models.ForeignKey(User)
    file = models.FileField(upload_to=_upload_to)