【问题标题】:Django Rest Framework Save Data from Serializer to ModelDjango Rest Framework 将数据从序列化程序保存到模型
【发布时间】:2018-09-10 14:31:21
【问题描述】:

如何将数据从序列化程序保存到模型数据库。以下是示例代码,但未将数据保存到数据库!

例如,我正在使用示例示例视图:
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)


models.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)


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 UserLogin.objects.create(**validated_data)



【问题讨论】:

  • 你有没有得到任何错误?你目前的反应是什么?
  • 我已经解决了,但你能证明我如何从序列化器中引用模型中的外键吗?
  • 你能在这里分享解决方案吗?
  • 你的模型类应该是这样的class UserDetails(models.Model)。如果您找到了解决方案,请发布答案。

标签: django django-rest-framework


【解决方案1】:
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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2016-05-06
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多