2017-01-16 5 views
1

Django Rest FrameworkのModelViewSetでGETとPOSTを区別するために何が必要なのかを知りたいと思います。ModelViewsetでGETとPOSTを区別するDjango Rest Framework


基本的に私は、2枚の画像をアップロードすることができますし、POST呼び出しの応答がアップロードされた画像の類似度に応じて、数あるAPIを作りたいです。このためには、POSTコールを使って、画像が保存されているパスを取得して、別のスクリプトでOpenCVで作業できるようにします。次に、私が持っているコードを置くと、2つの画像をアップロードできます。

## Models.py ## 
    class Task(models.Model): 
     task_name = models.CharField(max_length=20) 
     image1 = models.ImageField(upload_to='Images/',default='Images/None/No-img.jpg') 
     image2 = models.ImageField(upload_to='Images/', default='Images/None/No-img.jpg') 

     def __str__(self): 
      return "%s" % self.task_name 
    ## Serializers.py ## 

    class TaskSerializer(serializers.ModelSerializer): 

    image1 = serializers.ImageField(max_length=None,use_url=True) 
    image2 = serializers.ImageField(max_length=None, use_url=True) 
    class Meta: 
     model = Task 
     fields = ('id','task_name','image1','image2') 

## Views.py ## 

    class TaskViewSet(viewsets.ModelViewSet): 
     queryset = Task.objects.all() 
     serializer_class = TaskSerializer 

## Urls.py ## 

    router = routers.DefaultRouter() 
    router.register(r'task', views.TaskViewSet) urlpatterns = [ 
    url(r'^',include(router.urls)), 
    url(r'^admin/', include(admin.site.urls)), 
    ] 
+1

あなたの質問は不明です。投稿と投稿を区別することはどういう意味ですか?それはビューセット全体のポイントです – Sayse

答えて

0

私が正しくなったら、タスクを作成した後でイメージを比較する必要があります。

from rest_framework.decorators import detail_route 
from rest_framework.response import Response 

class TaskViewSet(viewsets.ModelViewSet): 
    queryset = Task.objects.all() 
    serializer_class = TaskSerializer 

    @detail_route(methods=['post']) 
     def perform_task(self, request, pk=None): 
      task = self.get_object() 
      serializer = PasswordSerializer(data=request.data) 
     if serializer.is_valid(): 
      task.save() 
      # here you run your code to set similarity 
      return Response({'similarity': similarity}) 
     else: 
      return Response(serializer.errors, 
          status=status.HTTP_400_BAD_REQUEST) 
関連する問題