Opened 18 years ago

Last modified 17 years ago

#3910 closed

DataError (Data too long for column) in admin caused by html entities overflowing db field size — at Version 2

Reported by: miguel.carboni@… Owned by: nobody
Component: contrib.admin Version: 0.96
Severity: Keywords: admin, DataError
Cc: Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Malcolm Tredinnick)

Hi! First of all, django is great.
I have found the following Model:

class Story(models.Model):
        autor = models.CharField(maxlength=50)
        titulo = models.CharField(maxlength=100)
        texto = models.CharField(maxlength=200)

        def __str__(self):
                return self.titulo

        class Admin:
                list_filter = ['autor']
                list_display = ['titulo', 'autor' ]

The model is trivial, it's not the actual.
The problem I found is that if I type í or á in the "titulo" textfield within the admin and save I got the following screen:

DataError at /admin/polls/story/2/
(1406, "Data too long for column 'message' at row 1")
Request Method: POST 
Request URL: http://localhost:8000/admin/polls/story/2/ 
Exception Type: DataError 
Exception Value: (1406, "Data too long for column 'message' at row 1") 
Exception Location: c:\python25\lib\site-packages\MySQL_python-1.2.2-py2.5-win32.egg\MySQLdb\connections.py in defaulterrorhandler, line 35 

It depends on the size of the "titulo", I guess the problem is that when it serialize "í" it turns into "í" then thes size of the verchar gets bigger than the original.

Regards!
Miguel S. Carboni
developer

Change History (2)

comment:1 by Simon G. <dev@…>, 18 years ago

Component: Database wrapperAdmin interface
Keywords: admin DataError added
Summary: Problems with admin and spanish stressesDataError (Data too long for column) in admin caused by html entities overflowing db field size
Triage Stage: UnreviewedAccepted

Formatted model:

class Story(models.Model):
	autor = models.CharField(maxlength=50)
	titulo = models.CharField(maxlength=100)
	texto = models.CharField(maxlength=200)

	def str(self):
		return self.titulo

	class Admin:
		list_filter = autor
		list_display = ['titulo', 'autor' ]

comment:2 by Malcolm Tredinnick, 18 years ago

Description: modified (diff)

Fixed summary formatting.

Note: See TracTickets for help on using tickets.
Back to Top