我遇到过同样的问题。这是一个 Django 1.4 的错误,所以我刚刚提交了一份报告。这是我提交的票,用一种简单的方法来重新创建错误:
标题:使用 formfield_overrides 设置 CharField 大小会导致所有管理字段使用模型定义中的最后一个 max_length
描述:查看如何使用 max_length 100 和 14 定义标题和 ISBN。对于在更改表单中编辑的用户,覆盖导致两个字段的 max_length 为 14 - 第 15 个字符不能插入到标题字段中。
模型.py:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100,blank=True, null=True)
ISBN13 = models.CharField(max_length=14,unique=True)
def __unicode__(self):
return self.title
管理员.py:
from django.contrib import admin
from django.db import models
from django.forms import TextInput
from books.models import Book
class BookAdmin(admin.ModelAdmin):
formfield_overrides = {
# Django enforces maximum field length of 14 onto 'title' field when user is editing in the change form
models.CharField: {'widget': TextInput(attrs={'size':'30'})},
}
admin.site.register(Book,BookAdmin)
编辑:在我提交错误的 48 小时内,令人惊叹的 Django 社区验证了错误并发布了补丁。我测试并确认此错误已在 2013 年 3 月发布的 Django 1.5 中修复。
https://code.djangoproject.com/ticket/19423#ticket