2011-10-19 19 views
0

まず最初に、私はDjangoの新機能だと宣言しなければなりません。Djangoモデルにクラス変数が使用されるのはなぜですか?

私はこのようなsimliarモデル作成と元気です:

from django.db import models 

class Person(models.Model): 
    first_name = models.CharField(max_length=30) 
    last_name = models.CharField(max_length=30) 

をしかし、私はカバーの下でどのように動作するかをDjangoのモデルを理解していません。私は

person = Person(); 
person.first_name = 'abc' 

言うとき、私は、2つのクラス変数を指定してなかったことは、私はこのコードでは、私は、以前のコードで使用FIRST_NAMEと同じように使用first_nameのですか? yesの場合、first_nameはmodels.CharFieldでなければなりませんが、文字列を渡していますが、どういう仕組みになっていますか?

答えて

2

これはかなり標準的なようです...私はあなたの質問を完全に理解しているかどうかはわかりません。

last_name = models.CharField(max_length=30) 

データを入力するフィールドを宣言していますか。あなたは "モデル"データベースに行を作成しているようです。

person.first_name = 'abc' 

作成したPersonのインスタンスのfirst_nameフィールドに入力するだけです。お役に立てれば。

2

最初の例では、クラスとそのクラス属性を定義しています。

2番目の例では、person = Person()でそのクラスのインスタンスを作成します(削除する必要はありません。;)。

次に、model.CharFieldのセッターは文字列を受け取りますが、まだタイプはCharFieldです。

+0

だから、私が最初のブロックで使った "first_name"と同じ2番目のブロックで使った "first_name"と言っていますか?それはクラス変数で、もう一つはインスタンス変数ではありませんか? – eroy4u

+0

最初に、使用可能なインスタンス属性を定義しています。あなたは、「人は名字を持っています」と言っているのは、「新しい人を作ってください」と言っていて、「この人の名前は「abc」です。 –

関連する問題