私はPythonとDjangoとシリアライザについて学ぶのは初めてです。私はシリアライザクラスを定義する際に、内部にネストされたメタクラスが必要であることを確認しました。私はこのメタクラスのコンセプトに賛成できないので、私はそれについて調べて、メタクラスはクラスがインスタンスであるクラスであることを発見しました。それを読んだ後でさえ、私は混乱しています。外側のシリアライザクラスは内部メタクラスのインスタンスですか?ここでこのメタクラスを使用する必要はありますか?django:なぜ私たちはmodelSerializerの中に入れ子になったメタクラスを使用しますか?
0
A
答えて
2
PythonのメタクラスとDjangoのメタクラスは、異なる概念です。
Googleで見つけたのは、Pythonのメタクラスです。これは、Djangoフレームワークが多くを使用していますが、ユーザーフレンドリーなコードではありません。 This blog postでは、Djangoがフレームワークのコードでメタクラスをどのように使用するかを説明します。これらのクラスが読み込まれ、特定の要素の構成を説明するモデル、フォーム、シリアライザ、ModelAdmins、等:
一方Djangoのメタクラスは、それがフレームワーク最前要素のうちのいくつかで使用される内部クラス構造体の実行時または移行時にはデータベースに保存されませんが、データベースの問題ではないためです。たとえば、フレームワークは、注文が指定されていない場合、そのモデルのQuerySetの優先順位が何であるかを知る必要があるときに、モデルのMeta構成を読み取ります。フォームは、is_valid
を呼び出すときに検証する必要があるフィールドを読み取ります。その他。
関連する問題
- 1. Groovyの - 私たちは、単純なGroovyのクラス持っメタクラス
- 2. 入れ子になったクラスでインポートされたパッケージを使用できないのはなぜですか?
- 3. 入れ子になったtry ... C++例外ハンドラの中にキャッチしますか?
- 4. JSOUPを使用して入れ子になったJSONを投稿中にエラーが発生しました
- 5. XHTML:入れ子になったULが無効なのはなぜですか?
- 6. Djangoで入れ子になったフォームを保存する
- 7. モデルプロパティを使用したModelSerializer
- 8. なぜこの単純なMongoose.jsプログラムは、「入れ子にされた」保存中にフリーズしますか?
- 9. 入れ子になったテンプレートの特殊化中に入れ子になったテンプレートクラスの静的メンバーを初期化していますか?ここ
- 10. CoreDataを使用した入れ子になった元に戻すグループ
- 11. 保留中のインテントの概念は何ですか?なぜ、私たちはPending Intentを使用しますか?
- 12. 入れ子になった$ .getJSONは()コルドバ
- 13. はなぜ急に私たちのアプレット
- 14. なぜ2つの入れ子になった中括弧がありますか?
- 15. C++:私はtypedefingと入れ子になったクラスの問題
- 16. Android - なぜ私たちはadapter.notifydatasetChanged()メソッドを使用していますか?
- 17. 入れ子になったの.propertiesファイル
- 18. ジェネリッククラスの入れ子になったジェネリック
- 19. Androidの入れ子になったスクロール
- 20. BeautifulSoupを使用して入れ子になったhtmlをスクラップできない
- 21. 静的な入れ子になったクラスは、私は、静的な入れ子になったクラスStatClassを持って
- 22. ログスタッシュの入れ子になったjsonを解析します
- 23. 入れ子になったforeach文の中から変数にアクセスするPHP
- 24. なぜ私の辞書の子供たちはいっぱいです
- 25. Pythonを使用して入れ子になったjson辞書にアクセスする
- 26. 既に存在する子どもたちに親に影響を与える入れ子になったフォーム
- 27. rapidjsonを使って入れ子になったJsonを読む
- 28. DjangoのRESTフレームワークPOSTのための外部キー項目をフィルタリングし、私はシンプルなModelSerializerを持って
- 29. テーブルとしてかなり入れ子になった辞書
- 30. 入れ子になったUITableViewが正しくバウンスしないのはなぜですか?
いいえ、それはまったく別の概念です。ここではいくつかの定義を持つ内部クラスです。しかし、同じ概念がDjango全体で使用されています。実際には、あなたがdjango-rest-frameworkを学ぶ前に、あなたはDjangoを学ぶべきです。あなたが持っていれば、このパターンはあなたを驚かせることはありません。 –