慣例により、djangoは宣言をクラス定義の最後から2番目、メソッド定義class Meta:
の直前に配置します。__unicode__
これは必要ですか?db_table = u'TableName'
一部のモデルでステートメントの大文字と小文字(大文字/小文字)が無視されているLionOSXの陰湿なエラーを追跡しようとしています。一部のモデルでは、 edテーブル名を使用してmanage.py syncdb
mysqlテーブルを作成し、その他のモデルでは、ケースを適切に使用します。カスタムメソッドやその他のメソッドを使用したより複雑なモデルは、mysqlテーブルを作成する前に小文字に変換されるモデルです。私はそれが問題であるかどうかを確認するために多くのコードを再配置しようとしていますが、過去にどこかで位置が指定されたことを思い出しましたが、物事の正しい順序に関するドキュメントを見つけることができません。lower()
db_table
save()
class Meta:
また、db_table仕様のUnicodeリテラルとシングルバイト文字列リテラルの両方を試しました。Nietherは違いを生みます(動作中または非動作中のモデルの場合)
関連するコードは次のとおりです。
grep -A5 -B2 _table'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)