Для тех, кто будет прибегать к помощи "ошибка, указанная в столбце дважды".
Может быть и другая причина этой ошибки. Посмотрите на этот код (из реального проекта):
class Language(models.Model):
code = name = models.CharField(max_length=10, null=False, default="", blank=False, choices=ALL_LANGUAGES)
name_on_site = models.CharField(max_length=250, null=False, default="", blank=False)
locale_code = models.CharField(max_length=10, null=True, default="", blank=True)
enabled = models.BooleanField(default=False)
def __unicode__(self):
return '%s (%s)' % (self.name_on_site, self.code)
Ничего криминального на первый взгляд, не так ли?
code = name =
Видишь эту опечатку? Это приведет к созданию двух полей, каждое из которых является допустимым CharField (). И «code», и «name» даже получат собственный столбец в базе данных.
Но когда Django попытается сохранить модель такого типа, она вставит значение «код» дважды в запрос. Зачем? Потому что экземпляр поля является общим для двух полей. И я предполагаю, что в Django есть какой-то механизм, который каким-то образом использует экземпляр поля для разрешения имен полей для запроса.
Итак, SQL-запрос будет выглядеть так:
INSERT INTO mytable ("code", "code", ... all other fileds) .. values.