По соглашению django помещает объявление class Meta:
, второе, последнее в определении класса, непосредственно перед определением метода __unicode__
. Это необходимо? Я пытаюсь проследить коварную ошибку на Lion OSX, где случай (капитал/ниже) оператора db_table = u'TableName'
игнорируется для некоторых моделей. Для некоторых моделей manage.py syncdb
создает таблицы mysql с именами таблиц lower()
, а для других он правильно использует db_table
. Более сложные модели с настраиваемыми save()
и другими методами - это те, которые преобразуются в нижний регистр перед созданием таблиц mysql. Я пытаюсь много перестроить код, чтобы понять, если это проблема, но не может найти документацию для правильного порядка вещей, хотя в прошлом я помню, что была указана позиция для class Meta:
.В django имеет значение, где размещена декларация `class Meta:`?
Также были использованы как литералы в формате unicode для спецификации db_table, так и однобайтовые строковые литералы. Niether сделать разницу (для работы или нерабочую модель)
Вот соответствующий код:
Grep ~В2 _table А5 'entityorganizer/models.py'
class Meta:
db_table = 'Entity'
verbose_name_plural = "entities"
ordering = ["map_status","type_name","name"]
get_latest_by = "updated"
--
class Meta:
db_table = 'EntityRelationship'
ordering = ["to_entity","relationship_type"]
unique_together = (('from_entity','to_entity','relationship_type'))
get_latest_by = "updated"
verbose_name = "relationship"
--
class Meta:
db_table = 'Specialty'
verbose_name_plural = u'specialties'
def __unicode__(self):
return '%s'%(self.specialty)
--
class Meta:
db_table = 'ZipCode'
get_latest_by = "updated"
def get_region(self):
return REGION[region_id_v2-200][1] or 0
--
class Meta:
db_table = 'Setting'
def __unicode__(self):
return '%s = %s'%(self.name, self.value) #, self.updated)
Это то, что я предполагал. Должна быть какая-то другая ошибка в моей модели def или несогласованность в том, как Lion и MAMP обрабатывают случай имен таблиц. Единственное, что изменилось между рабочим и нерабочим, - это обновление до Lion OSX на сервере. – hobs
Попробуйте дважды проверить свои вкладки? – sdolan
tabs/вдавлено прекрасный. отлично работает на Linux-сервере, а не OSX Lion. – hobs