2017-07-22 16 views
1

私はDRFが新しく、モデルオブジェクトのリストを提供し、これらのオブジェクトを更新できるWebHookを構築しようとしています。私はこのチュートリアルhttp://www.django-rest-framework.org/tutorial/quickstart/に続いて、次のシリアライザとビューを持っている:Django Rest FrameworkとViewSetsを使用してモデルを更新する

class Task(serializers.ModelSerializer): 
    class Meta: 
     model = Task 
     fields = ('user', 'task', 'unixTime') 

ビュー:

class RequestViewSet(viewsets.ModelViewSet): 
    """ 
    API endpoint that allows reqests to be viewed or edited. 
    """ 
    queryset = Task.objects.filter(done = False).order_by('-unixTime') 
    serializer_class = Task 
    paginate_by = None 

    def list(self, request, *args, **kwargs): 
     self.object_list = self.filter_queryset(self.get_queryset()) 
     serializer = self.get_serializer(self.object_list, many=True) 
     return Response({'results': serializer.data}) 

私はdef listdef updateを含める必要がかなり確信している、しかし、私が見つけたオンラインリソースそれらを実装する方法とそれが何をするのかが少し不明でした。どんな助けもありがとうございます。

答えて

2

@hackerman、あなたが次のステップ、

http://www.django-rest-framework.org/tutorial/quickstart/#urls

に従った場合うーん、あなたはAPIのアドレスを取得します、それはhttp://localhost:8000/task/1/のように見えることがあり、ここで前提とすると、タスクのOBJ(ID =です1)をデータベースに保存します。ブラウザで開き、apiが動作するかどうかを確認してください。

次に、json文字列データを使用してPUTリクエストを作成するには、httpクライアント(requests)が必要です。

希望の方にお役立てください。

+0

それは私が行方不明だった部分のようです、ありがとう! – hackerman

2

シリアライザの名前を変更するだけでよいでしょうか。

class TaskSerializer(serializers.ModelSerializer): 

そして、それが標準ですので、それはあなたが、あなたのリストのメソッドを削除することができた後、ビューセットに

serializer_class = TaskSerializer 

を置き換えることを忘れないでください。

+0

@hackerman、cool name、 'Task'はModelクラス名なので、ModelSerializerクラス名を変更する必要があります。入力ミス ? :D – gzerone

+0

@gzerone、ありがとう! 「仕事」は私の部分のタイプミスだった。私はそれを修正しましたが、オブジェクトを更新する方法はまだ分かりません。オブジェクトを選択して「完了」フィールドを更新するために、どのようなコードやリクエストを書く必要があるのか​​分かりますか? – hackerman

関連する問題