django - 运行迁移命令时出现此错误。以 10 为基数的 int() 的无效文字:“肖像”。下面是我的代码。Django 版本=1.11
问题描述
下面是我的models.py 中的类。
类类别(模型。模型):
TRAVEL = 'TR'
WEDDING = 'WE'
PORTRAITURE = 'PR'
CATEGORIES = (
('TRAVEL', 'travel'),
('WEDDING', 'wedding'),
('PORTRAITURE', 'portraiture'),
)
category = models.CharField(
max_length=32,
choices=CATEGORIES,
default='PORTRAITURE',
)
类图像(模型。模型):
image = models.ImageField((""), upload_to='images/', height_field=None, width_field=None, max_length=None, blank=True)
image_name = models.CharField(max_length=60)
image_description = models.TextField()
location = models.ForeignKey(Location, null=True)
category = models.ForeignKey(Category, default='PORTRAITURE')
pub_date = models.DateTimeField(default=datetime.now, blank=True)
tags = models.ManyToManyField(tags)
忽略下面的部分。
有两个用于验证的可选参数,max_length 和 allow_empty_file。如果提供,这些确保文件名最多为给定长度,并且即使文件内容为空,验证也会成功。
要了解有关 UploadedFile 对象的更多信息,请参阅文件上传文档。
当您在表单中使用 FileField 时,您还必须记住将文件数据绑定到表单。
max_length 错误是指文件名的长度。在该键的错误消息中,%(max)d 将替换为最大文件名长度,%(length)d 将替换为当前文件名长度
解决方案
创建模型时,Django默认会为其创建一个id = models.AutoField(primary_key=True)
自动递增的主键字段。此密钥将用于模型关系。因此,在Image
模型的category
字段中,您必须传递一个整id
数值 aCategory
作为默认值,例如,如果PORTRAITURE
id 为 3,则:
category = models.ForeignKey(Category, default=3)
但是由于您有一个固定的类别列表,您不必创建单独的模型,只需将它们放在Image
模型中,如下所示:
class Image(models.Model):
TRAVEL = 'TR'
WEDDING = 'WE'
PORTRAITURE = 'PR'
CATEGORIES = (
(TRAVEL, 'travel'),
(WEDDING, 'wedding'),
(PORTRAITURE, 'portraiture'),
)
image = models.ImageField(upload_to='images/', height_field=None, width_field=None, max_length=None, blank=True)
image_name = models.CharField(max_length=60)
image_description = models.TextField()
location = models.ForeignKey(Location, null=True)
category = models.CharField(
max_length=2,
choices=CATEGORIES,
default=PORTRAITURE,
)
pub_date = models.DateTimeField(default=datetime.now, blank=True)
tags = models.ManyToManyField(tags)
请注意,我还删除了一些不必要的引号。
推荐阅读
- python - 在 Python 中调用 URL 时出错
- angular - 前提是 Pipe 无权访问路由解析的数据
- ruby-on-rails - 如何停止在端口 3000 上运行 rails 服务器的 nohup 进程
- javascript - 使用 react-slider 我的标签没有对齐
- php - 浏览器显示其他语言的问号
- java - 过程编程中的抽象数据类型实现
- typescript - 如何在 VSCode 中查看大型打字稿类型?
- node.js - 调用在控制器中同步工作的函数 - 节点
- android - 构建 QML 应用程序的 APK 文件时出现链接错误
- python-3.x - 虽然训练 epoch 详细信息未更新并且未完成所有 eoch