我是django rest框架的新手。我试图构建一个API,在其中我想编辑POST方法,以便可以执行一些操作并更改POST正文中的某些数据。我试图遵循django rest框架网站上的一些文档和指南,但没有遵循。请帮我。
在这里,我需要为将要保存在数据库中的某些字段设置一些值。views.py
from .models import LoginActivity
from .serializers import LoginActivitySerializers
class LoginActivity(viewsets.ModelViewSet):
queryset = LoginActivity.objects.all()
serializer_class = LoginActivitySerializers
urls.py
from django.urls import path, include
from rest_framework import routers
from . import views
router = routers.DefaultRouter()
router.register(r'LoginActivity', views.LoginActivity, basename='LoginActivity')
# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
appname='api'
urlpatterns = [
path('', include(router.urls)),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
serializers.py
from rest_framework import serializers
from .models import LoginActivity
class LoginActivitySerializers(serializers.HyperlinkedModelSerializer):
class Meta:
model = LoginActivity
fields = ('id', 'user_id', 'datetimelog', 'device_os', 'device_token', 'device_model')
请帮我。
您可以覆盖来自其他框架的其余框架create
方法,viewsets.ModelViewSet
并更新请求数据或执行其他一些操作。
from .models import LoginActivity
from .serializers import LoginActivitySerializers
class LoginActivity(viewsets.ModelViewSet):
queryset = LoginActivity.objects.all()
serializer_class = LoginActivitySerializers
def create(self, request, *args, **kwargs):
# here you have your post data in request.data
data = request.data
# you can do some action here just before create action
# after that you can call super method or return your response
serializer = self.get_serializer(data=data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
return Response(status=status.HTTP_201_CREATED)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句