Django - 增加 FileField 长度

标签 django

我正在尝试使用 FileField 存储文件,但文件目标的路径大于 100 个字符。如何增加允许的字符数?我试过 max_length=255 但没有用。

谢谢。

编辑:添加模型

class File(models.Model):
    Record = models.ForeignKey(Records)
    Title = models.CharField(max_length=255, blank=False)
    File = models.FileField(upload_to='files/Records', blank=False)
    Upload_date = models.DateTimeField(auto_now_add=True)

    def __unicode__(self):
        return self.Title

最佳答案

Django 文档清楚地表明 FileField接受一个可选参数来更改用于存储文件引用(文件名)的 varchar 列的长度。

Taken from the Django documentation here :

FileField instances are created in your database as varchar columns with a default max length of 100 characters. As with other fields, you can change the maximum length using the max_length argument.



为了利用这个max_length参数,您只需将参数添加到模型的字段声明中,如下所示:
class File(models.Model):
    Record = models.ForeignKey(Records)
    Title = models.CharField(max_length=255, blank=False)
    File = models.FileField(upload_to='files/Records', blank=False, max_length=500)
    Upload_date = models.DateTimeField(auto_now_add=True)

def __unicode__(self):
    return self.Title
max_lengthFileField Django 提供的在数据库级别强制执行。当您更改必须在数据库级别强制执行的模型定义时,您可能会发现必须使用 syncdb或迁移以在数据库中实现此更改。只需更改 max_length模型定义中的参数将不起作用,除非您随后迁移数据库以反射(reflect)此更改。

在这种特殊情况下,varchar 列表示存储在 FileField 中的文件的引用文件名。必须更新以允许更大长度的文件名。请确保您已经完成了必要的数据库维护,以确保您的模型的字段在您的数据库中忠实地表示。有关迁移的更多信息,请访问 here .

关于Django - 增加 FileField 长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575635/

相关文章:

django - Celery/Django - 如何以编程方式查看 worker 的状态

python - 无法使用 python 3.7 启动 pipenv

python Django : login with office 365

python - 现有数据库的新 Django 应用程序初始数据库迁移

django - 以编程方式检查是否需要部署django南迁移

javascript - 将字符串列表从 Django 传递到 Javascript

python - Elasticsearch dsl删除错误

python - 带参数的 django.shortcuts.redirect

python - Django 管理屏幕不按名称显示实体

django - 为简单的调查应用程序生成表单