2017-12-19 12 views
0

Djangoプロジェクトでモデルクラスの自己表現jsonを作成する便利な方法はありますか?Djangoモデルクラスの自己表現

は、私はこのようなモデルがあるとしましょう:

class MyModel(models.Model): 
    some_bool_field = models.BooleanField(default=True) 
    some_char_field = models.CharField(max_length=20, blank=False) 

私は私のクラス自体のモデルのアーキテクチャを表すJSONオブジェクトを返しますいくつかの並べ替えのシリアライザを必要とする、のようなもの:

{ 
    'model_class': 'MyModel', 
    'some_bool_field': 
    {'type': 'BooleanField', 'default': 'true'}, 
    'some_char_field': 
    {'type': 'CharField', 'max_length': '20', 'blank': 'false' } 
} 

APIの作成にはDjango-rest-frameworkを使用していますので、フレームワークの内部に埋め込まれた準備ができたソリューションがあるかもしれません。

+0

なぜこれが必要ですか? –

+0

私はapiの「回避策」技術文書を探していますが、代わりに、利用可能なエンドポイントの一覧を返す個別のエンドポイントを作成する必要がありますか、どのエンドポイントでどのデータとどの形式が必要かを期待しています。 –

+0

@pycoder Rest-frameworkは、 'POST'リクエストに何かがない場合に必要なフィールドを返しますが、必須ではないフィールドについては通知しません。 –

答えて

1

データベーステーブルをAPIで公開することは好ましくありません。特にモデルやフィールドがある場合には、特定のタイプのユーザーがアクセス権を持たないようにしてください。代わりに、Django REST Framework(DRF)と統合されたAPIエクスプローラまたはドキュメントジェネレータを使用してAPIエンドポイントで使用されるシリアライザを公開することができます。

APIを文書化する方法については、http://www.django-rest-framework.org/topics/documenting-your-api/というDRFドキュメントの全ページがあります。私はすでにDjango REST Swaggerを使用していますが、これはかなり単純でDRFとの統合性は高いですが、そのページにはたくさんのオプションがあります。あなたは本当にこれらの選択肢の1つを試みることを検討すべきです。

関連する問題