Django 1.5.4 syncdb не создает некоторые поля в таблицах PostgreSQL 9.1/PostGIS 2

У меня есть модель Django, как это:

class Company(models.Model):
    name=models.CharField(max_length=256, default=''),
    user=models.ForeignKey(User),
    logo=models.ImageField(upload_to='logos')

    def __unicode__(self):
        return unicode(self.name)

после запуска syncdb я получаю эту таблицу PostgreSQL

CREATE TABLE myapp_company (
    id integer NOT NULL,
    logo character varying(100) NOT NULL
);

Таким образом, ни поле имени, ни идентификатор пользователя. То же самое происходит с другими классами модели: пропущенные поля. И выглядеть случайным образом. Например, это странно. Эта модель

class MapLayer(models.Model):
    cartodb_layer = models.ForeignKey('CartoDBLayer'),
    work_map = models.ForeignKey('WorkMap'),
    overlap = models.BooleanField(default=False),
    min_zoom = models.IntegerField(default=4),
    max_zoom = models.IntegerField(default=14),
    opacity = models.FloatField(default=0.6),
    anti_aliasing = models.FloatField(default=0.5)

Создает эту таблицу PostgreSQL

CREATE TABLE myapp_maplayer (
    id integer NOT NULL,
    anti_aliasing double precision NOT NULL
);

Итак, почему только id и последнее поле (float), а не какое-либо другое поле??

Та же проблема при попытке запустить схему-инициацию через Юг 0.8.2. Но тот факт, что даже простой syncdb не работает, заставляет меня думать, что это не проблема Юга.

Мои версии программного обеспечения:

  • Джанго 1.5.4
  • Юг 0.8.2
  • PostgreSQL 9.1 + PostGIS 2

Есть какие-нибудь подсказки?

1 ответ

Решение

Решаемые. Самая глупая ошибка. Проблема была в запятых. Итак, мне нужно заменить

class Company(models.Model):
    name=models.CharField(max_length=256, default=''),
    user=models.ForeignKey(User),
    logo=models.ImageField(upload_to='logos')

    def __unicode__(self):
        return unicode(self.name)

С

class Company(models.Model):
    name=models.CharField(max_length=256, default='')
    user=models.ForeignKey(User)
    logo=models.ImageField(upload_to='logos')

    def __unicode__(self):
        return unicode(self.name)
Другие вопросы по тегам