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

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

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

如您所见,我希望文件“upload_to”参数依赖于用户。有什么简单的方法可以做到这一点吗?

最佳答案

upload_to也可以是可调用的,例如函数,它将被调用以获取上载路径,包括文件名。
此可调用项必须能够接受两个参数,并返回要传递给存储系统的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)

关于python - Django模型字段取决于实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23946149/

10-12 12:41
查看更多