タグ付けされた質問 「django-rest-framework」

RESTful Web APIを構築するための強力で柔軟なツールキット。Djangoは、迅速な開発とクリーンで実用的な設計を促進する高レベルのPython Webフレームワークです。経験豊富な開発者によって構築され、Web開発の煩わしさの多くを処理します。そのため、ホイールを再発明することなく、アプリの作成に集中できます。それは無料でオープンソースです。

6
Django RESTフレームワーク、同じModelViewSetで異なるシリアライザーを使用
2つの異なるシリアライザーを提供しながら、以下のすべての機能を利用できるようにしたいと思いますModelViewSet。 オブジェクトのリストを表示するとき、各オブジェクトにその詳細にリダイレクトするURLを持たせ、他のすべての関係が__unicode __ターゲットモデルを使用して表示されるようにします。 例: { "url": "http://127.0.0.1:8000/database/gruppi/2/", "nome": "universitari", "descrizione": "unitn!", "creatore": "emilio", "accesso": "CHI", "membri": [ "emilio", "michele", "luisa", "ivan", "saverio" ] } オブジェクトの詳細を表示するとき、デフォルトを使用したい HyperlinkedModelSerializer 例: { "url": "http://127.0.0.1:8000/database/gruppi/2/", "nome": "universitari", "descrizione": "unitn!", "creatore": "http://127.0.0.1:8000/database/utenti/3/", "accesso": "CHI", "membri": [ "http://127.0.0.1:8000/database/utenti/3/", "http://127.0.0.1:8000/database/utenti/4/", "http://127.0.0.1:8000/database/utenti/5/", "http://127.0.0.1:8000/database/utenti/6/", "http://127.0.0.1:8000/database/utenti/7/" ] } 私は次のようにして、このすべてをうまく機能させることができました。 serializers.py # …

2
Django RESTフレームワーク:非モデルシリアライザー
私はDjango RESTフレームワークの初心者であり、あなたのアドバイスが必要です。Webサービスを開発しています。サービスは他のサービスへのRESTインターフェースを提供する必要があります。私が実装する必要のあるRESTインターフェースは、モデルで直接機能していません(つまり、取得、書き込み、投稿、削除操作を意味します)。代わりに、他のサービスにいくつかの計算結果を提供します。リクエストに応じて、私のサービスはいくつかの計算を行い、結果を返します(結果を独自のデータベースに保存しません)。 以下は、RESTインターフェースを実装する方法についての私の理解です。私が間違っているなら、私を訂正してください。 計算を行うクラスを作成します。「CalcClass」という名前を付けます。CalcClassは作業にモデルを使用します。 計算に必要なパラメーターはコンストラクターに渡されます。 計算操作を実装します。結果は「ResultClass」として返されます。 ResultClassを作成します。 オブジェクトから派生。 計算結果を含む属性のみが含まれます。 計算結果の一部は、タプルのタプルとして表されます。私が理解しているように、これらの結果用に別のクラスを実装し、そのようなオブジェクトのリストをResultClassに追加することは、さらなるシリアライゼーションにとってより良いでしょう。 ResultClassのシリアライザを作成します。 serializers.Serializerから派生。 計算結果は読み取り専用であるため、IntegerFieldなどの特殊なクラスではなく、ほとんどの場合フィールドのFieldクラスを使用します。 結果を保存するつもりはないので、ResultClassにもSerializerにもsave()メソッドを実装しないでください(リクエストに応じて結果を返したいだけです)。 ネストされた結果のImplシリアライザー(上記のタプルのタプルを忘れないでください)。 計算結果を返すビューを作成します。 APIViewから派生します。 get()だけが必要です。 get()で、リクエストから取得したparamsでCalcClassを作成し、そのcalc()を呼び出し、ResultClassを取得し、Serializerを作成して、それにResultClassを渡し、Response(serializer.data)を返します。 URL 私の場合、APIルートはありません。さまざまな計算結果(diff paramsを使用した計算)を取得するには、URLが必要です。 APIブラウジング用の呼び出しformat_suffix_patternsを追加します。 私は何か見落としてますか?アプローチは一般的に正しいですか?

7
django-tastypieとdjangorestframeworkの違いは何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 2年前休業。 この質問を改善する DjangoアプリのAPIを公開するために、なぜどちらを使用するのですか? http://pypi.python.org/pypi/djangorestframework/ http://pypi.python.org/pypi/django-tastypie

3
Django Rest Frameworkを使用して関連モデルフィールドを含めるにはどうすればよいですか?
次のモデルがあるとします。 class Classroom(models.Model): room_number = [....] class Teacher(models.Model): name = [...] tenure = [...] classroom = models.ForeignKey(Classroom) ManyRelatedPrimaryKeyField関数ごとに次のような結果を得る代わりに、 { "room_number": "42", "teachers": [ 27, 24, 7 ] }, 次のような完全な関連モデル表現を含む何かを返すようにします。 { "room_number": "42", "teachers": [ { 'id':'27, 'name':'John', 'tenure':True }, { 'id':'24, 'name':'Sally', 'tenure':False }, ] }, これは可能ですか?もしそうなら、どうですか?そして、これは悪い考えですか?

3
django-rest-frameworkの管理者スタイルの参照可能なインターフェイスを無効にする方法は?
私はdjango-rest-frameworkを使用しています。素晴らしいDjango管理スタイルのブラウズ可能な自己文書化APIを提供します。しかし、誰でもこれらのページにアクセスし、インターフェースを使用してデータを追加できます(POST)。どうすれば無効にできますか?

7
Django REST Framework:ModelSerializerにフィールドを追加する
モデルをシリアル化したいが、シリアル化するモデルインスタンスでいくつかのデータベースルックアップを実行する必要がある追加のフィールドを含めたい: class FooSerializer(serializers.ModelSerializer): my_field = ... # result of some database queries on the input Foo object class Meta: model = Foo fields = ('id', 'name', 'myfield') これを行う正しい方法は何ですか?余分な「コンテキスト」をシリアライザに渡すことができると思いますが、コンテキストディクショナリの追加フィールドを渡す正しい答えは何ですか。そのアプローチでは、必要なフィールドを取得するロジックはシリアライザ定義で自己完結することはなく、すべてのシリアル化されたインスタンスがを必要とするため理想的ですmy_field。他の場所でDRFシリアライザのドキュメントでそれは言う、「追加のフィールドは、モデル上の任意のプロパティまたは呼び出し可能に対応させることができます」。余分なフィールドは私が話していることですか?Fooのモデル定義でmy_field値を返す関数を定義し、シリアライザでmy_fieldをその呼び出し可能オブジェクトにフックする必要がありますか?それはどのように見えますか? よろしくお願いします。必要に応じて、質問を明確にします。

7
ビューセットのメソッドを無効にする、django-rest-framework
ViewSets リスト、取得、作成、更新、削除などの自動メソッドがあります... 私はそれらのいくつかを無効にしたいと思います、そして私が思いついた解決策はおそらくOPTIONSそれらが許可されていると述べているのでおそらく良いものではありません。 これを正しい方法で行う方法についてのアイデアはありますか? class SampleViewSet(viewsets.ModelViewSet): queryset = api_models.Sample.objects.all() serializer_class = api_serializers.SampleSerializer def list(self, request): return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) def create(self, request): return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED)


5
TemplateDoesNotExist-Djangoエラー
私はDjango Rest Frameworkを使用しています。エラーが発生し続ける Exception Type: TemplateDoesNotExist Exception Value: rest_framework/api.html 私はどうやって間違っているのか分かりません。RESTフレームワークを実際に試すのはこれが初めてです。これはコードです。 views.py import socket, json from modules.data.models import * from modules.utils import * from rest_framework import status from rest_framework.decorators import api_view from rest_framework.response import Response from modules.actions.serializers import ActionSerializer @api_view(['POST']) @check_field_exists_wrapper("installation") def api_actions(request, format = None): action_type = request.POST['action_type'] if action_type …

9
RESTful APIのトークン認証:トークンを定期的に変更する必要がありますか?
Djangoとdjango-rest-frameworkを使用してRESTful APIを構築しています。 認証メカニズムとして「トークン認証」を選択し、Django-REST-Frameworkのドキュメントに従ってすでに実装しているので、問題は、アプリケーションがトークンを定期的に更新/変更する必要があるかどうか、そうであればどのようにですか?トークンの更新が必要なのはモバイルアプリですか、それともWebアプリで自律的に更新する必要がありますか? ベストプラクティスは何ですか? Django REST Frameworkの経験があり、技術的な解決策を提案できる人はいますか? (最後の質問は優先度が低くなっています)

12
Django Rest Frameworkがcsrfを削除
Django Rest Frameworkに関する回答があることは知っていますが、問題の解決策を見つけることができませんでした。 認証といくつかの機能を備えたアプリケーションがあります。Django Rest Frameworkを使用する新しいアプリを追加しました。このアプリだけでライブラリを使いたい。また、POSTリクエストを作成したいのですが、常にこのレスポンスを受け取ります。 { "detail": "CSRF Failed: CSRF token missing or incorrect." } 私は次のコードを持っています: # urls.py from django.conf.urls import patterns, url urlpatterns = patterns( 'api.views', url(r'^object/$', views.Object.as_view()), ) # views.py from rest_framework.views import APIView from rest_framework.response import Response from django.views.decorators.csrf import csrf_exempt class Object(APIView): @csrf_exempt def post(self, …

3
Django Rest Frameworkの応答に(モデルを介して)仲介者を含める
m2m / throughモデルの扱いと、django restフレームワークでのそれらのプレゼンテーションについて質問があります。古典的な例を見てみましょう: models.py: from django.db import models class Member(models.Model): name = models.CharField(max_length = 20) groups = models.ManyToManyField('Group', through = 'Membership') class Group(models.Model): name = models.CharField(max_length = 20) class Membership(models.Model): member = models.ForeignKey('Member') group = models.ForeignKey('Group') join_date = models.DateTimeField() serializers.py: imports... class MemberSerializer(ModelSerializer): class Meta: model = Member class …

17
Django Rest Framework-ビュー名「user-detail」を使用してハイパーリンク関係のURLを解決できませんでした
私はDjango Rest Frameworkでプロジェクトを構築しています。このプロジェクトでは、ユーザーはログインしてワインセラーを表示できます。私のModelViewSetsは問題なく動作していましたが、突然、このイライラするエラーが発生しました。 ビュー名「user-detail」を使用してハイパーリンク関係のURLを解決できませんでした。APIに関連モデルを含めなかったかlookup_field、このフィールドの属性を正しく構成していない可能性があります。 トレースバックは以下を示します: [12/Dec/2013 18:35:29] "GET /bottles/ HTTP/1.1" 500 76677 Internal Server Error: /bottles/ Traceback (most recent call last): File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/django/core/handlers/base.py", line 114, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/rest_framework/viewsets.py", line 78, in view return self.dispatch(request, *args, **kwargs) File "/Users/bpipat/.virtualenvs/usertest2/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 57, in wrapped_view return view_func(*args, …

1
Serializerのcreate()およびModelViewsetのcreate()perform_create()を使用する場合
django-rest-frameworkモデルオブジェクトの作成に関する特定のドキュメントを明確にしたいと思います。これまでのところ、このようなイベントを処理する方法には3つのアプローチがあることがわかりました。 シリアライザーのcreate()方法。これがドキュメントです class CommentSerializer(serializers.Serializer): def create(self, validated_data): return Comment.objects.create(**validated_data) ModelViewsetcreate()メソッド。ドキュメンテーション class AccountViewSet(viewsets.ModelViewSet): queryset = Account.objects.all() serializer_class = AccountSerializer permission_classes = [IsAccountAdminOrReadOnly] ModelViewsetperform_create()メソッド。ドキュメンテーション class SnippetViewSet(viewsets.ModelViewSet): def perform_create(self, serializer): serializer.save(owner=self.request.user) これらの3つのアプローチは、アプリケーション環境に応じて重要です。 しかし、いつ各create() / perform_create()関数を使用する必要がありますか??。一方、modelviewsetcreate()とserializerの単一のPOSTリクエストに対して2つのcreateメソッドが呼び出されたというアカウントを見つけましたcreate()。 うまくいけば、誰かが説明するために彼らの知識のいくつかを共有するでしょう、そしてこれは確かに私の開発プロセスで非常に役立つでしょう。

8
Django Rest Framework:フィールドのサブセットを動的に返す
問題 ブログ投稿の「実践的なRESTful APIを設計するためのベストプラクティス」で推奨されているようfieldsに、Django Rest FrameworkベースのAPIにクエリパラメーターを追加すると、ユーザーはリソースごとにフィールドのサブセットのみを選択できます。 例 シリアライザ: class IdentitySerializer(serializers.HyperlinkedModelSerializer): class Meta: model = models.Identity fields = ('id', 'url', 'type', 'data') 通常のクエリはすべてのフィールドを返します。 GET /identities/ [ { "id": 1, "url": "http://localhost:8000/api/identities/1/", "type": 5, "data": "John Doe" }, ... ] fieldsパラメータを使用したクエリは、フィールドのサブセットのみを返す必要があります。 GET /identities/?fields=id,data [ { "id": 1, "data": "John Doe" }, ... ] …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.