我的模型被命名为Color有4列,即Name&背景颜色& H1颜色& P color.It就像
但是现在我只能以json格式获得数据库的一列(它是Name)。 就像
[
{
"task_name": "white"
},
{
"task_name": "green"
},
{
"task_name": "pink"
}
]
我希望以json
格式获取表的所有列,但为什么我不能这样做?
models.py
是
from django.db import models
# Create your models here.
class Color(models.Model):
name = models.CharField(max_length=255)
background_color = models.CharField(max_length=255)
h1_color = models.CharField(max_length=255)
p_color = models.CharField(max_length=255)
def __str__(self):
return self.name
serializers.py
是
from .models import Color
from rest_framework import serializers
class TaskSerializer(serializers.Serializer):
task_name = serializers.CharField(max_length=100,source='name')
class Meta:
model = Color
fields = ('name',
'background_color',
'h1_color',
'p_color',
'task_name')
views.py
是
from django.shortcuts import render
from .models import Color
from .forms import ColorForm
from .serializers import TaskSerializer
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from rest_framework import generics
# Create your views here.
def index(request):
d = {
'colors': Color.objects.all(),
'form': ColorForm(),
}
return render(request, 'index.html', d)
class TaskGet(generics.ListAPIView):
serializer_class = TaskSerializer
queryset = Color.objects.all()
我无法理解为什么名字可以得到,但其他人不能得到。在models.py
,我辞去了所有元素。我怎么能解决这个问题?
答案 0 :(得分:0)
您在这里使用Serializer
这就是为什么您只在json中获取一个字段的原因。您必须使用ModelSerializer
你必须使用
class TaskSerializer(serializers.ModelSerializer):