首页 > 解决方案 > 保存时在 Django 模型上引用未保存的字段

问题描述

我正在将我的媒体上传到 S3 存储桶,并希望在上传到 S3 之前引用名称字段。

class Customer(models.Model):
   name = ForeignKey(Person)
   img = ImageField(upload_to='<name>/avatars/')

如何在upload_to 中动态使用名称字段?

我试过了:

class Customer(models.Model):
    name = ForeignKey(Person)
    path = name.email + '/avatars/'
    img = ImageField(upload_to=path)

但我得到一个 AttributeError 说 ForeignKey 对象没有属性电子邮件,即使我有另一个模型,我将在 ForeignKey 中引用。

标签: djangoamazon-s3django-models

解决方案


我在这里找到了一个有效的答案 https://www.geeksforgeeks.org/filefield-django-models/

def user_directory_path(instance, filename):
    return 'user_{0}/{1}'.format(instance.name, filename)

class Customer(models.Model):
   name = ForeignKey(Person)
   img = ImageField(upload_to=user_directory_path)

推荐阅读