I had the same issue. It's a Django 1.4 bug, so I just filed a report. Here's the ticket I filed, with an easy way to recreate the bug:
title: using formfield_overrides to set CharField size causes all admin fields to use last max_length in model definition
description: See how title and ISBN are defined with max_length of 100 and 14. The override cause both fields to have max_length of 14 with respect to a user who is editing in the change form - a 15th character cannot be inserted into the title field.
models.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
admin.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)
EDIT: Within 48 hours of my bug submission, the amazing Django community verified the bug and issued a patch. I tested and confirmed that this bug was fixed in Django 1.5, which was released in March, 2013.
https://code.djangoproject.com/ticket/19423#ticket