当我使用django REST框架时如何打印东西?

时间:2017-04-06 07:01:04

标签: django django-rest-framework

我使用django REST框架。 在我的views.py中有一个类:

class TaskViewSet(viewsets.ModelViewSet):

    queryset = Task.objects.all().order_by('-date_created')
    serializer_class = TaskSerializer
    print("leo test in TaskViewSet")

我想在每次调用url时打印("在TaskViewSet&#34中进行leo测试;)。

但它只会在我使用runserver cmd后打印一次。

每次调用api url时,任何人都知道如何打印("在TaskViewSet&#34中进行leo测试;)。

我的urls.py:

from django.conf.urls import url,include
from django.contrib import admin
from rest_framework import routers
from trips.views import TaskViewSet


router = routers.DefaultRouter()
router.register(r'task',TaskViewSet)

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    #url(r'^$', hello_world),
    url(r'^', include(router.urls)),
]

非常感谢。

1 个答案:

答案 0 :(得分:2)

您必须定义操作才能获得所需的行为。默认情况下,您定义的路由器绑定到多个操作,如创建,检索,列表,更新和销毁。因此,当您通过以下方法实现这些操作时,您将能够在每个端点调用上打印。

class TaskViewSet(viewsets.ModelViewSet):

    queryset = Task.objects.all().order_by('-date_created')
    serializer_class = TaskSerializer
    print("leo test in TaskViewSet")

    def list(self, request):
        print("leo test in TaskViewSet")
        return Response("leo test in TaskViewSet", status=status.HTTP_404_NOT_FOUND)

    def create(self, request):
        print("leo test in TaskViewSet")
        return Response("leo test in TaskViewSet", status=status.HTTP_404_NOT_FOUND)


    def retrieve(self, request, pk=None):
        print("leo test in TaskViewSet")
        return Response("leo test in TaskViewSet", status=status.HTTP_404_NOT_FOUND)


    def update(self, request, pk=None):
        print("leo test in TaskViewSet")
        return Response("leo test in TaskViewSet", status=status.HTTP_404_NOT_FOUND)


    def partial_update(self, request, pk=None):
        print("leo test in TaskViewSet")
        return Response("leo test in TaskViewSet", status=status.HTTP_404_NOT_FOUND)


    def destroy(self, request, pk=None):
        print("leo test in TaskViewSet")
        return Response("leo test in TaskViewSet", status=status.HTTP_404_NOT_FOUND)

如果有什么不清楚,请告诉我。另请阅读此处了解更多详情http://www.django-rest-framework.org/api-guide/viewsets/#marking-extra-actions-for-routing