带过滤器的 Django 计数

问题描述

我试图用过滤器计数,但没有显示任何错误,但没有显示计数

我已经尝试了所有我所知道的并搜索了所有没有找到任何解决方案的地方:

class UsersAnsweRSSerializer(serializers.ModelSerializer):

 Answers = serializers.SerializerMethodField('get_answers')

 def get_answers(self,obj):
    queryset = AnswersModel.objects.filter(Question=obj.Answer.Question.id)\
        .annotate(answersCount=Count('UsersAnswer',distinct=True))

    serializer = AnsweRSSerializer(instance=queryset,many=True)

    return serializer.data
 
 class Meta:
     model = UsersAnswerModel
     fields = ['Answer','APNSDevice','RegistrationID','Answers']

这是我的模型:

class AnswersModel(models.Model):
      Question = models.ForeignKey(QuestionsModel,related_name='QuestionAnswer',on_delete=models.CASCADE)
      Answer = models.CharField(max_length=200)

class UsersAnswerModel(models.Model):
     Answer = models.ForeignKey(AnswersModel,related_name='UsersAnswer',on_delete=models.CASCADE)
     RegistrationID = models.CharField(max_length=200)
     APNSDevice = models.CharField(max_length=200,default='no name')

class QuestionsModel(models.Model):
      created = models.DateTimeField(auto_Now_add=True)
      Question = models.CharField(max_length=200)
      

得到的是什么

{
"Answer": 12,"APNSDevice": "byname","RegistrationID": "asdasdasdasdasdasdasdasdsa","Answers": [
    {
        "id": 10,"Question": 4,"Answer": "Answer 1","UsersAnswer": [
            "gfgdgdfgdf","c748dfd8aa7dd73a6c1ef17676aa7667161ff7e0f8e2ef21ef17e964a26150e4"
        ]
    },{
        "id": 11,"Answer": "Answer 2","UsersAnswer": [
            "sfgdfgdf","c748dfd8aa7dd73a6c1ef17676aa7667161ff7e0f8e2ef21ef17e964a26150e4","c748dfd8aa7dd73a6c1ef17676aa7667161ff7e0f8e2ef21ef17e964a26150e4"
        ]
    }

我需要让“UsersAnswer”显示其数组的数量

解决方法

我认为你想要做的是聚合和计数。

用聚合替换注解

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...