Django - inspectdb - "models.FileField" 显示为 "models.CharField"
Django - inspectdb - the "models.FileField" are displayed as "models.CharField"
出于某种原因,我想检查使用 Django 创建的 Db。我 运行 命令 = python manage.py inspectdb > inspectdb.txt
我看到 = models.CharField
代替了预期的 = models.FileField
,而 models.py 有正确的 models.FileField
而且 Db 肯定有一个 models.FileField
作为我能够正确存储 Files = .csv ,在这种情况下。
我的问题 - 为什么 inspectdb 会以不同方式显示模型字段,如何了解更多相关信息?
相关问题 -
这很有道理,因为 FileField
在数据库端是 varchar
。数据库不 存储文件的内容。它在数据库中存储文件在磁盘(或其他存储引擎)上的存储路径。
在数据库端,因此根本没有区别,只是 Django logic 处理方式不同。如果您稍后分析数据库并打算从中生成 Django 模型,那么它当然不会以任何方式看到差异。
因此,inspectdb
工具不是构建数据库的迁移文件的(完美)逆向。 inspectdb
只是制作确实与数据库端的类型进行类型检查的模型。但是 Django 模型在逻辑方面比数据库 table 更 "rich"。通常在 运行 inspectdb
之后需要一些 "scaffolding" 来确保字段进行正确的验证等
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.
Note that whenever you deal with uploaded files, you should pay close attention to where you’re uploading them and what type of files they are, to avoid security holes. Validate
all uploaded files so that you’re sure the files are what you think they are
请查看 Django 文档 https://docs.djangoproject.com/en/2.2/ref/models/fields/#filefield
出于某种原因,我想检查使用 Django 创建的 Db。我 运行 命令 = python manage.py inspectdb > inspectdb.txt
我看到 = models.CharField
代替了预期的 = models.FileField
,而 models.py 有正确的 models.FileField
而且 Db 肯定有一个 models.FileField
作为我能够正确存储 Files = .csv ,在这种情况下。
我的问题 - 为什么 inspectdb 会以不同方式显示模型字段,如何了解更多相关信息?
相关问题 -
这很有道理,因为 FileField
在数据库端是 varchar
。数据库不 存储文件的内容。它在数据库中存储文件在磁盘(或其他存储引擎)上的存储路径。
在数据库端,因此根本没有区别,只是 Django logic 处理方式不同。如果您稍后分析数据库并打算从中生成 Django 模型,那么它当然不会以任何方式看到差异。
因此,inspectdb
工具不是构建数据库的迁移文件的(完美)逆向。 inspectdb
只是制作确实与数据库端的类型进行类型检查的模型。但是 Django 模型在逻辑方面比数据库 table 更 "rich"。通常在 运行 inspectdb
之后需要一些 "scaffolding" 来确保字段进行正确的验证等
FileField
instances are created in your database asvarchar
columns with a default max length of 100 characters. As with other fields, you can change the maximum length using the max_length argument.Note that whenever you deal with uploaded files, you should pay close attention to where you’re uploading them and what type of files they are, to avoid security holes.
Validate
all uploaded files so that you’re sure the files are what you think they are
请查看 Django 文档 https://docs.djangoproject.com/en/2.2/ref/models/fields/#filefield