gpt4 book ai didi

Django 管理数据错误 : Value too long for type character varying(150)

转载 作者:行者123 更新时间:2023-11-29 13:57:02 24 4
gpt4 key购买 nike

我在 Django 管理中遇到了一个非常奇怪的行为。我有这个模型定义:

class WebPublication(DatesInfo):
title = models.CharField(max_length=200)
class Meta:
abstract = True

class WebArticle(MsnPublication):
pass

以及以下表单和管理代码:

class WebArticleForm(forms.ModelForm):
title = forms.CharField(max_length=150)

class WebPublicationAdmin(admin.ModelAdmin):
def some_method(self, obj):
return 'Hello!'

class WebArticleAdmin(WebPublicationAdmin):
form = MsnArticleForm
list_display = ('title', 'author', 'pub_date', 'preview_link')

admin.site.register(MsnArticle, MsnArticleAdmin)

这是非常标准的,这就是为什么我说我觉得这很奇怪并尝试提供尽可能多的细节。

可以看到,WebPublication有一个最大长度为200的varchar,可以在表描述中确认(顺便说一下PostgreSQL):

      Column       |           Type           |     Modifiers
-------------------+--------------------------+-------------------
title | character varying(200) | not null

但是,当我尝试编辑 title 字段时,我从 Django 管理员那里得到以下异常。我将其设为 150 个字符,这是根据 WebPublicationAdmin 的定义(这是预期的)输入字段允许的最大值。

DataError: value too long for type character varying(150)

请注意错误消息如何不反射(reflect)模型的当前状态。 (我运行了一次迁移并且成功了,因为 PostgreSQL 是这样说的。)

这里可能出了什么问题?

最佳答案

你的问题是你在这里用 150 覆盖了标题的 max_length;

class WebArticleForm(forms.ModelForm):
title = forms.CharField(max_length=150)

管理员正在使用此表单来验证数据。只需更改 150 -> 200。

关于Django 管理数据错误 : Value too long for type character varying(150),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29786603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com