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)