django - django使用自定义名称和目录名称上传文件
问题描述
我想设置我的 django 模型以使用自定义路径和文件名上传文件,我的当前模型:
def update_filename(instance, filename):
path = "accounts/"
format = instance.id + "/" + filename
return os.path.join(path, format)
class AccountsModel(models.Model):
ChannelName = models.CharField(max_length=100, unique=False)
AuthUri = models.CharField(max_length=250, unique=True)
ClientSecret = models.CharField(max_length=250, unique=True)
ClientID = models.CharField(max_length=250, unique=True)
ClientSecrets = models.FileField(upload_to="accounts/", default='', null=True, blank=False)
RequestToken = models.FileField(upload_to="accounts/", default='', null=True, blank=False)
Note = models.CharField(max_length=250, unique=False)
counter = models.IntegerField(default=0)
author = models.ForeignKey(User, null=True, blank=True, on_delete=models.PROTECT)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
当我尝试上传文件时,我想要这样:
/accounts/22/clientsecret.json
/accounts/22/token.json
我当前的配置返回此错误:
UNIQUE constraint failed: myupload_accountsmodel.ClientID
我怎么能这样做?我哪里错了?
完整项目:https ://github.com/scaltro/youtubeapp/blob/master/myupload/models.py
解决方案
推荐阅读
- excel - Excel 范围选择自动填充(通过给定行的参数
- android - 多个请求完成后的 Android Volley 回调
- enterprise-architecture - 如何将语言日本更改为英语 Enterprise Architect
- dji-sdk - 移动 SDK:ActiveTrack 任务,用于到达混凝土墙的指定点
- ethereum - 使用 Trezor(硬件钱包)将签名交易发送到 Ropsten 或 Truffle 开发网络
- c# - 在远程计算机上的 .net 核心中加载私钥时出错
- ios - IOS 设计中未显示离子到 SVG 图像
- php - 如何在 CASE WHEN 中传递数组
- html - 带有缩进和不同列表类型的有序列表格式
- ruby-on-rails - 我什么时候应该使用 firebase 的实时数据库?