首页 > 解决方案 > 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

标签: django

解决方案


推荐阅读