2014-10-27 18 views
1

我想在Django中做一個調查應用程序。我的模型如下:Django API計算響應計數

class mymodel(models.Model):  
    resptype = models.ForeignKey(Response) 
    ques = models.ForeignKey(Question)  
    response = models.CharField(max_length=5, blank=True) 

我在這裏使用REST框架將數據發送到我的前端。現在,我有我的api定義如下:

class mymodelList(APIView): 
    def get(self, request, format=None): 
     surveydata = mymodel.objects.all() 
     serialized_surveydata = mymodelSerializer(surveydata, many=True) 
     return Response(serialized_surveydata.data) 

在我的應用程序,我有一組標準有多種選擇響應的16個問題,並選擇保存在模型的響應列。

現在我正在努力實現的是計算每個問題的答案數量。即。對於問題1,什麼是一個人迴應1或2或等等。

另外我想知道如何發送計算的計數通過另一個json字段從其餘框架,因爲我沒有任何模型分別爲這些數據定義。

編輯:

此命令的伎倆我的查詢,但我仍然無法弄清楚如何將其發送到前端的序列化對象。

x = mymodel.objects.values('ques','response').order_by().annotate(number_of_responses=Count('response')) 

回答

0

這對於您的模型來說並不是一個很好的結構,它可能會更容易地創建單獨的問題和選擇類。 The Django tutorial實際上使用這種類型的應用程序作爲示例...看一看這一些指導

0

檢查@detail_route或@list_route從viewsets取決於是否要顯示這個信息每個問題一次所有問題。

這將允許您定義自定義端點來請求您要求的信息。爲此,您可能還需要定義一個自定義的serializer以傳遞額外的數據,或者如果您想按照問題,用戶等過濾filter