2

我在syncdb上收到此错误:

  File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/models/manager.py", line 203, in _insert
    return insert_query(self.model, objs, fields, **kwargs)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/models/query.py", line 1576, in insert_query
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 910, in execute_sql
    cursor.execute(sql, params)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/backends/util.py", line 40, in execute
    return self.cursor.execute(sql, params)
  File "/app/.heroku/venv/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 52, in execute
    return self.cursor.execute(query, args)
django.db.utils.DatabaseError: value too long for type character varying(50)

创建这个新模型后:

class Promocio(models.Model):
    codiIdioma = models.CharField(u"Codi de l'idioma",max_length = 10, choices = LANGUAGES, unique=True  )    
    headTxt = models.TextField( u"Text del títol",   help_text = u'''Text que apareixerà com a títol al missatge de promoció de la recollida de e-mails amb la tablet''' )
    bodyTxt = models.TextField( u"Text del cost del missatge" ,  help_text = u'''Text que apareixerà com al cos del missatge de promoció de la recollida de e-mails amb la tablet''')
    buttonTxt =  models.TextField( u"Text del butó d'OK",  help_text = u'''Text que apareixerà dins el butó de recollida de e-mails amb la tablet''' )
    codiOrdenacio = models.CharField(u"Codi d'ordenació",max_length = 10, blank = True, help_text = u"Codi alfanumèric per determinar quin idioma es presenta abans i quin després. Ex: 00AA" )  

    class Meta:
        ordering=['codiOrdenacio']
        db_table = u'promocions_tablet'
        verbose_name = u'Missatge de Promoció a mostrar a la tablet'
        verbose_name_plural = u'Missatges de Promoció a mostrar a la tablet'

一些想法来解决这个问题?

4

1 回答 1

3

在此期间自动创建的唯一对象syncdbContentTypes,但每个 char 字段都ContentType允许 100 个字符,并且从 Django 的早期就开始了。verbose_name用于内容类型上的字段name,但您的verbose_name,虽然很长,但仍低于 50 个字符。

除此之外,Django每次运行时还会处理所有initial_data应用程序中的任何固定装置。这就是为什么我问你有没有。如果这个特定的应用程序没有,那么一定有某个应用程序,在某个地方确实有一个。此外,这可能包括 中列出的第三方应用程序,因此您可能需要四处寻找。syncdbINSTALLED_APPS

于 2012-06-01T21:34:11.370 回答