django - 保存时在 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 中引用。
解决方案
我在这里找到了一个有效的答案 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)
推荐阅读
- javascript - JavaScript:数组的重复数据删除和计数属性
- azure - 重命名现有的 Azue 数据工厂
- reactjs - 反应原生 TextField 更新
- docker - 如何解决 Docker Pull 上“无法在此平台上使用 Image OS 'Linux'”的问题?
- javascript - 访问复杂的 js 对象
- python - 具有平均差(基尼)的性能 numpy 与 for 循环
- python - 如何在 QuantLib-Python 中为 Cliquet 期权定价?
- python - 首次完成 Discord Bot 后如何播放下一首歌曲
- optimization - CNN中超参数的优化
- r - Tidyverse 和 dplyr- 错误包或命名空间