Este é um post de José Lopes.
Aquando da utilização da administração do Django obtive o seguinte erro de validação para o modelo de imagem models.ImageField, apesar dos ficheiros serem imagens:
Upload a valid image. The file you uploaded was either not an image or a corrupted image
Este post mostra uma forma de contornar este problema.
Quanto à causa deste problema não tenho uma ideia muito concreta do que o provoca, talvez seja devido ao facto do Django ainda estar em desenvolvimento. Eu estou a utilizar a última versão trunk do Django, número 7519 aquando da publicação deste post, e a versão 1.1.4-298 do PIL (Python Imaging Library).
Assim, para contornar este problema basta editar o ficheiro 'PATH para a directoria do Django'/django/core/validators.py e comentar as seguintes linhas da função isValidImage:
trial_image = Image.open(StringIO(content)) trial_image.load()
O erro de validação deixa de aparecer quando se faz o upload de uma imagem.
O modelo continua a validar correctamente os ficheiros mostrando agora o erro somente se este não for uma imagem.