2

位置引数でモデルを呼び出すときに、フィールドに明確な順序があるかどうか疑問に思っていますか?

標準的なチュートリアルの例を見てみましょう:

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

オブジェクトを作成する標準的な方法は、キーワード引数を使用することですが、これも可能です。

newPoll = Poll(123, "What is your favorite color?", timezone.now())

この場合、値は「id」、「question」、「pub_date」の順序でフィールドに割り当てられます。

私の質問は、Django がこれらの位置引数をモデルのフィールド変数にどのようにマップするかです。これに一貫したロジックがある場合、モデルクラスまたは manager.create メソッドで位置引数を使用できますか? (学術的な目的のためだけに、それは良い考えではないかもしれません)

Django ソースの base.py ファイルを読んでみましたが、Django を使い始めたばかりなので、すべてを理解するのに時間がかかります。誰かがこれを説明できれば、それは素晴らしいことです。

4

1 に答える 1

0

ドキュメントでは create メソッドを としてのみ参照しているためcreate(**kwargs)、位置引数はドキュメント化されていない動作であり、保守可能なコードでは信頼できないと見なします。私のバージョンの Django では、それはまさにソースがQuerySet言うことなので、私が見ていない魔法がない限り、位置引数は機能しませんが、それはあなたのバージョンとは異なる可能性があります。

于 2012-12-06T21:17:06.677 に答える