2017-01-17 1 views
0

ID, store_name, order_date가 포함 된 주문이 있습니다. ..... 모든 주문 수로 구성된 JSON을 반환하는 끝점을 만들고 싶습니다. 가게들. 뭔가 다음과 같이 내가 쓴DjangoRestFramework : JSON 응답을 반환 할 수 없습니다.

[{store_name: 'Target', count: 10}, {store_name: 'Walmart', count: 20}, {store_name: 'Costco', count: 5}] 

쿼리입니다 : 내가 검색어 세트를 인쇄 할 때

queryset = Stores.objects.all().values('store_name').annotate(total=Count('store_name')) 

, 내가 위에서 언급 한 바와 같이 내가 필요한 것을 얻고있다.

내가 뭘 잘못
[{store_name: 'Target'}, {store_name: 'Walmart'}, {store_name: 'Costco'}] 

확실하지 .. 난 내 코드를 포함 시켰습니다 : 나는 데이터를 직렬화 할 때 는하지만, 나는 다음과 같은 얻을. 나는 무엇을 놓치고

class StoresSerializer(ModelSerializer): 
    class Meta: 
     model = Stores 
     exclude = ['order_date',] 

views.py

class StoresViewSet(ModelViewSet): 
    queryset = Stores.objects.all().values('store_name').annotate(total=Count('store_name')) 
    serializer_class = StoresSerializer 

serializer.py (I는 import 문을 포함하고 있지 않다)?

+0

확인하기 질문 http://stackoverflow.com/questions/18434425/how-to-add-annotate-data-in-django-rest-framework-queryset-responses –

답변

0

class Store(models.Model): 
    name = models.CharField(max_length=100) 

class Order(models.Model): 
    store_name = models.ForeignKey(Store) 
    order_date = models.DateTimeField(auto_now_add=True) 

serializer.py

models.py 다음과 같이이 (단순화 된 버전을 단지 아이디어를 보여주기 위해) 갈 것 one old topic를 사용

from rest_framework.serializers import ModelSerializer 
from rest_framework import serializers 
from .models import Store 

class StoresSerializer(ModelSerializer): 
    orders = serializers.IntegerField() 

    class Meta: 
     model = Store 
     fields = ('name', 'orders') 

views.py

class StoresViewSet(viewsets.ModelViewSet): 
    queryset = Store.objects.all().values('name').annotate(orders=Count('order')) 
    serializer_class = StoresSerializer 
관련 문제