python - django.db.utils.DataError: value too long for type character varying(650)
问题描述
我有一个模型TextField
,我最近将它max_length
从 650 更改为 1500。
class Comment(models.Model)
...
comment_text = models.TextField(max_length=1500, blank=True, null=True)
我已经执行了 makemigrations 和 migrate,当我发布超过 650 个字符的评论时,我的本地服务器上没有问题。
但是,当我在远程服务器上发表超过 650 多个字符的评论时,它会返回此错误:
File "/home/james/postr/env/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "/home/james/postr/env/lib/python3.5/site-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/james/postr/env/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/home/james/postr/env/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
django.db.utils.DataError: value too long for type character varying(650)
即使我检查了远程代码已更改为max_length=1500
.
知道问题是什么吗?
解决方案
解决了
在我的评论创建视图中,它还创建了一个Inbox
对象:
inbox = Inbox.objects.create(user=post.user, replier=request.user, type='commented', text=ajax_comment, post=post)
其中有max_length
650...
我现在将其更改为:
class Inbox(models.Model)
...
text = models.CharField(max_length=1500)
现在它正在工作。
推荐阅读
- java - 文件时间到字符串
- javascript - 在 ubuntu OS(Mozilla Firefox 浏览器)中显示黑色背景的选择框下拉菜单
- .net - 表达式树和数据行
- android - 没有 Braintree 的本地移动设备中的 Paypal 结帐集成
- javascript - React、Redux、Thunk
- php - NGINX - PHP-FPM 多应用 K8s/Ingress
- c# - ASPNet Core 2.1 加载预编译视图的正确方法
- php - 如何从 Laravel 路由提供生成的 Vue 应用程序?
- android - 向 DialogFragment 添加关闭按钮
- javascript - 是否可以向图像添加点击事件?