我正在尝试从我的模型数据库中获取日期。当我请求获取所有对象时,它只显示{}。
我想使用django-restapi获取并发布一个日期
下面是我的代码:
我的序列化程序:
from rest_framework import serializers
from .models import prediction_model
class predserializer(serializers.Serializer):
class Meta:
model = prediction_model
field = '__all__'我的模型:
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:
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)发布于 2020-01-05 23:52:54
您需要从serializers.ModelSerializer继承
class predserializer(serializers.ModelSerializer):在将查询集传递给序列化程序时,需要传递many=True
serializer = predserializer(prediction, many=True)发布于 2020-01-06 00:21:58
serializers.py文件应为:
from rest_framework import serializers
from .models import prediction_model
class predserializer(serializers.ModelSerializer):
class Meta:
model = prediction_model
field = '__all__'在views.py中,应该是:
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)https://stackoverflow.com/questions/59601535
复制相似问题