Djangoのモデルシンタックス変更

2005年08月26日(金) 01:39 この記事をクリップ!

djangoのModelシンタックスが、revision549から変更になったようです。
#549以前のモデルの記述方法では動かなくなっています。


今回の変更に関する記述
http://www.djangoproject.com/weblog/2005/aug/25/modelsyntax/
http://code.djangoproject.com/wiki/ModelSyntaxChangeInstructions

python臭さが薄れ、構造的には美しくなったような気がします。
リリースバージョン(1.0)の後は後方互換性を保つようにするとの事です。

古いシンタックス

class Foo(meta.Model):
fields = (
meta.CharField('first_name', "The person's first name", maxlength=30),
meta.CharField('last_name', maxlength=30),
meta.ForeignKey(Bar),
meta.ManyToManyField(Sites),
)
ordering = ('-bar_id',)
admin = meta.Admin(
fields = (
(None, {'fields': ('first_name', 'last_name', 'bar_id', 'sites')}),
),
)

def __repr__(self):
return self.first_name

新しいシンタックス

class Foo(meta.Model):
first_name = meta.CharField("The person's first name", maxlength=30)
last_name = meta.CharField(maxlength=30)
bar = meta.ForeignKey(Bar)
sites = meta.ManyToManyField(Sites)
class META:
ordering = ('-bar',)
admin = meta.Admin(
fields = (
(None, {'fields': ('first_name', 'last_name', 'bar', 'sites')}),
),
)

def __repr__(self):
return self.first_name


 
ponybadge

Powered by

Feedbacks

Tweets

Tags

Calendar