Sye*_*zan 5 django django-rest-framework
如何将数据从序列化程序保存到模型数据库。以下是示例代码但不将数据保存到数据库!
例如,我正在使用示例视图:
views.py
@api_view(['GET', 'POST', ])
def login(request):
if request.method == "POST":
s = LoginSerializer(data=request.data)
if s.is_valid():
s.save()
return Response(s.data, status=201)
else:
return Response(s.data, status=203)
else:
return Response("", status=404)
Run Code Online (Sandbox Code Playgroud)
模型.py
from django.db.models import Model
from django.db import models
class UserDetails(Model):
userid = models.AutoField(primary_key=True)
first_name = models.CharField(max_length=20)
last_name = models.CharField(max_length=20)
phone = models.CharField(max_length=15)
class UserLogin(Model):
userid = models.ForeignKey(UserDetails, on_delete=None)
email = models.CharField(max_length=20)
password = models.CharField(max_length=30)
Run Code Online (Sandbox Code Playgroud)
序列化程序.py
from rest_framework import serializers
from api.models import UserLogin, UserDetails
class LoginSerializer(serializers.Serializer):
userid = serializers.Field()
email = serializers.EmailField()
password = serializers.CharField(max_length=20)
def create(self, validated_data):
return UserLogin.objects.create(**validated_data)
Run Code Online (Sandbox Code Playgroud)
小智 0
serializers.py
from rest_framework import serializers
from api.models import UserLogin, UserDetails
class LoginSerializer(serializers.Serializer):
userid = serializers.Field()
email = serializers.EmailField()
password = serializers.CharField(max_length=20)
def create(self, validated_data):
return super().create(validated_data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4144 次 |
| 最近记录: |