2017-09-02 10 views
1

私のモデルは色が& H1色& P color.Itが actual table私だけ

のようなものです。しかし、今私は得ることができます名前&背景色である4列を持っているという名前のJSON形式でデータベースの一つの列を取得しますjson形式のデータベースの1列(名前です)。

[ 
    { 
     "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である私は、名前を取得することができますが、他はmodels.pyをget.Inすることができない理由を私は理解できない

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() 

ですすべての要素を辞表した。この?

答えて

0

ここではSerializerを使用しているため、jsonで1つのフィールドしか取得できません。あなたは

class TaskSerializer(serializers.ModelSerializer): 
を使用する必要が ModelSerializer

を使用する必要があります