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 の初期の頃から持っています。はcontenttype のフィールドにverbose_name使用されますが、あなたの は長いですが、まだ 50 文字未満です。nameverbose_name

それに加えて、Djangoは実行されるたびにすべてのinitial_dataアプリのフィクスチャも処理します。だから、持ってるか聞いてみた。この特定のアプリに何もない場合は、どこかにアプリがあるはずです。さらに、これには にリストされているサードパーティのアプリが含まれている可能性があるため、いくつか調べる必要があるかもしれません。syncdbINSTALLED_APPS

于 2012-06-01T21:34:11.370 に答える