首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django rest_frameworks未获取数据

django rest_frameworks未获取数据
EN

Stack Overflow用户
提问于 2020-01-05 23:49:51
回答 2查看 32关注 0票数 0

我正在尝试从我的模型数据库中获取日期。当我请求获取所有对象时,它只显示{}

我想使用django-restapi获取并发布一个日期

下面是我的代码:

我的序列化程序:

代码语言:javascript
复制
from rest_framework import serializers
from .models import prediction_model


class predserializer(serializers.Serializer):

    class Meta:
        model = prediction_model
        field = '__all__'

我的模型:

代码语言:javascript
复制
from django.db import models


# Create your models here.

class prediction_model(models.Model):
    date = models.DateField()

    def meta(self):
        return self.date

我的views.py:

代码语言:javascript
复制
from django.shortcuts import render
from rest_framework import status
from rest_framework.response import Response
from .models import prediction_model
from .serializers import predserializer

# Create your views here.
from rest_framework.decorators import api_view


def index(request):
    return render(request, 'homesite/index.html')


@api_view(['GET', 'POST'])
def get_date(request):
    if request.method == 'GET':
        prediction = prediction_model.objects.all()
        serializer = predserializer(prediction)
        return Response(serializer.data)


def post_date(request):
    if request.method == 'POST':
        serializer = predserializer(data=request.data)
        return Response(serializer.data, status=status.HTTP_201_CREATED)
EN

回答 2

Stack Overflow用户

发布于 2020-01-05 23:52:54

您需要从serializers.ModelSerializer继承

代码语言:javascript
复制
class predserializer(serializers.ModelSerializer):

在将查询集传递给序列化程序时,需要传递many=True

代码语言:javascript
复制
serializer = predserializer(prediction, many=True)
票数 0
EN

Stack Overflow用户

发布于 2020-01-06 00:21:58

serializers.py文件应为:

代码语言:javascript
复制
from rest_framework import serializers
from .models import prediction_model


class predserializer(serializers.ModelSerializer):

    class Meta:
        model = prediction_model
        field = '__all__'

views.py中,应该是:

代码语言:javascript
复制
from django.shortcuts import render
from rest_framework import status
from rest_framework.response import Response
from .models import prediction_model
from .serializers import predserializer

# Create your views here.
from rest_framework.decorators import api_view


def index(request):
    return render(request, 'homesite/index.html')


@api_view(['GET', 'POST'])
def get_date(request):
    if request.method == 'GET':
        prediction = prediction_model.objects.all()
        serializer = predserializer(prediction, many=True)
        return Response(serializer.data)


def post_date(request):
    if request.method == 'POST':
        serializer = predserializer(data=request.data)
        return Response(serializer.data, status=status.HTTP_201_CREATED)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59601535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档