問題タブ [django-rest-framework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - django-rest-frameworkチュートリアル4(認証と許可)の問題
チュートリアル1〜3をスムーズに終了した後、チュートリアル(http://django-rest-framework.org/tutorial/4-authentication-and-permissions.html)に従い、「ユーザーモデルのエンドポイントの追加」までのセクションを終了しました。 。
(つまり、 "url(r'^ users / $'、views.UserList.as_view())、url(r'^ users /(?P [0-9] +)/ $'、views.UserInstanceを追加します.as_view())、 "完了しました。)
次に、「python manage.py runserver」のコマンドを使用してサーバーを実行し、ブラウザーhttp://127.0.0.1:8000/users/
で次のエラーメッセージを表示しました。
(メッセージ開始)
/users/でのNameError
名前「ユーザー」が定義されていません
リクエスト方法:GET
リクエストURL: http://127.0.0.1:8000/users/
Djangoバージョン:1.4.3
例外タイプ:NameError
例外値:名前'ユーザー'が定義されていません
例外の場所:メタの/home/user/tutorial/snippets/serializers.py、14行目
(メッセージ終了)
私は何か見落としてますか?
私のserializer.pyのコードは次のとおりです。
django-rest-framework - djangoレストフレームワークチュートリアル4シリアライザーのコンセプト
http://django-rest-framework.org/tutorial/4-authentication-and-permissions.htmlでチュートリアル1-4を終了し、コードを実行しました。
しかし、私は周りの説明を完全には理解していません:
どのフィールドがどのフィールドを参照しているのか混乱しています。
1.たとえば、models.pyのSnippetクラスで定義された所有者フィールドがあります。https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkeyで調べた後ForeignKey()
、クラスを返すと表示されます。auth.User
クラスを返しますか?
2.もしそうなら、「所有者」は何をしますか
参照する?のインポート部分に所有者が見つかりませんserializers.py
。
3.serializers.Field(source='owner.username')
返品とは何ですか?auth.Userのユーザー名を返しますか?
4.対応するモデルに別のテーブルへのフィールド参照がある場合、対応するフィールドをシリアライザークラスに追加する必要がありますか?
django - DjangoRESTフレームワークと一般的な関係
問題
次の標準的な一般的な外部キーフィールドを持つモデルがあります。
RESTフレームワークのドキュメントによると、これを正しくシリアル化するために次のことができます。
これは正常に機能しますが、他の2つの関連する状況では、動作させることができません。
- 使いたい
HyperlinkedRelatedField
です。このフィールドにはview_name引数が必要です。これは、ビュー名が関連するモデルによって異なるため、宣言できません。SerializerMethodField
を使用して、実行時にインスタンス化し、HyperlinkedIdentityField
そのメソッドを返すことでこれを解決しましたfield_to_native
(以下のスニペットを参照)。これはあまりエレガントではありません。 - と言って、関連するオブジェクトをシリアル化に直接ネストしたいと思います
event_object = SoAndSoSerializer(source='event_object')
。私が見ることができる唯一の解決策は、*Serializer
私が定義したすべてを歩き、正しいモデルを持っているものを確認し、それを使用することです。繰り返しますが、これはあまりエレガントではありません。
質問
HyperlinkRelatedFieldは、一般的な関係全体で機能することを目的としていますか?私はただ間違えているのですか?*Serializer
私が欠けている権利を選ぶための明白な解決策はありますか?
コードスニペット
上記の箇条書き1で述べたエレガントでない解決策:
python - serializer.save()はcreation_counterエラーを引き起こします
Rest-Frameworkチュートリアルに従い、シリアライザーモデルで説明されているようにAPIをセットアップしました。このserializer.is_valid()
メソッドはtrueを返し、serializer.dataとserializer.objectを出力すると、本来のように見えます。
しかし、電話をかけるとserializer.save()
、次のエラーメッセージが表示されます。
'str'オブジェクトには属性'creation_counter'がありません
誰かが同じ問題に遭遇したか、それを修正する方法やこの問題が発生する理由を知っていますか?
私の見解は次のようになります。
django - RESTful API のトークン認証: トークンは定期的に変更する必要がありますか?
Django とdjango-rest-frameworkを使用して RESTful API を構築しています。
認証メカニズムとして「トークン認証」を選択し、Django-REST-Framework のドキュメントに従って既に実装しています。問題は、アプリケーションがトークンを定期的に更新/変更する必要があるかどうかです。トークンの更新を必要とするのはモバイル アプリであるべきか、それとも Web アプリが自律的に行うべきか?
ベストプラクティスは何ですか?
Django REST Framework の経験があり、技術的な解決策を提案できる人はいますか?
(最後の質問は優先度が低くなります)
python - Django Rest Framework を使用して関連するモデル フィールドを含めるにはどうすればよいですか?
次のモデルがあるとします。
ManyRelatedPrimaryKeyField 関数ごとに次のような結果を取得する代わりに、次のようにします。
次のような完全な関連モデル表現を含むものを返すようにします。
これは可能ですか?もしそうなら、どのように?そして、これは悪い考えですか?
python - DjangoRestFramework-ModelSerializerにカスタムフィールドを追加する方法
を作成しModelSerializer
、モデルの一部ではないカスタムフィールドを追加したいと思います。
ここにフィールドを追加するための説明を見つけて、次のことを試しました。
このフィールドを追加してvalidate()
関数を呼び出すと、このフィールドはattr
dictの一部ではありません。attr
追加フィールドを除く、指定されたすべてのモデルフィールドが含まれます。したがって、上書きされた検証でこのフィールドにアクセスできませんか?
このフィールドを次のようにフィールドリストに追加すると、次のようになります。
次に、モデルの一部ではないためにエラーが発生しますcustomField
。このシリアライザーのためだけに追加したいので、正しいことです。
カスタムフィールドを追加する方法はありますか?
forms - django-rest-framework - ブラウズ可能な API でフォームを自動生成しますか?
正しい語彙を使用しているかどうかはわかりません。django-rest-framework で無料で提供されるブラウズ可能な API で、ModelForms を定義する方法と同様のフォームを自動生成する方法があるかどうか疑問に思っていました。これにより、場合によっては API への入力をより簡単にテストできるようになります。私は現在、違いが生じる場合に備えて、ModelSerializers とジェネリック ビュー APIView を使用しています。
ドキュメントを読みました (この時点で数回) が、どこにも言及されていませんでした。
django - ほとんどの通常のビューを Tastypie API に変換したいですか?
通常の Django ビューを TastyPie API に変換しています。
(私の質問はtastypieに固有のものではありません。残りのフレームワークを使用すると同じ質問が発生します)
ユーザーがログインするためにもtastypieを使用している人を見かけます。
Tastypieを使用してdjangoにログインするにはどうすればよいですか
Tastypie を使用して、画像をギャラリー アプリなどにアップロードできると思います。
Tastypie は使い慣れているのでhandle resource
、uploading an image
と考えることができますcreating a resource
。と見なす
方法がわかりません。
(私が見ているように、それはCRUDではありません)login
handling resource
regular views
問題は、 と の間に引かなければならない線は何かということですtastypie powered views
。
通常のビューはいつ使用し、tastypie やその他の REST API を利用したビューはいつ使用しますか?
django - Django Rest Framework ディクショナリ フィールド
DjangoのAPIのバックエンドとしてmongoengineでMongodbを使用しています。API の作成に使用しているフレームワークは Django Rest Framework です。
Mongo のフィールドにディクショナリを格納する必要があります。メソッド post が呼び出されたときに行った最善の方法は、charfield を使用して関数 restore_object でディクショナリを解析することです。
この目標を達成するためのより良い方法はありますか?
dict フィールドを作成した方が良いですか? これがどれほど難しいかわかりません。
ありがとうございました。
いくつかのコードを表示するように編集しましたが、辞書を dict (DictField) として保存していることに注意してください。その内容は、あるオブジェクトから別のオブジェクトに変更される可能性があります。
私のmongoengineモデルは次のようなものです:
そして私のシリアライザは次のようなものです: