Serialization 从django rest框架中的相关表数据获取计数

Serialization 从django rest框架中的相关表数据获取计数,serialization,django-rest-framework,Serialization,Django Rest Framework,我有两张桌子 class student(models.Model): frist_name = models.CharField(max_length=255) last_name = models.CharField(max_length=255) class subject(models.Model): student = models.ForeignKey(student) sub_name = models.CharField() 我想学生名单和主

我有两张桌子

class student(models.Model):
    frist_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)


class subject(models.Model):
    student = models.ForeignKey(student)
    sub_name = models.CharField()
我想学生名单和主题计数在序列化程序

classs SubjectSerializers(serializers.ModelSerializer):
    class Meta:
        model = JobPosting
        fields = ('id','sub_name')

class StudentSerializers(serializers.ModelSerializer):
    sub = SubjectSerializers(source = 'student')
    class Meta:
        model = JobPosting
        fields = ('id','first_name', 'last_name','sub')
我的序列化程序

classs SubjectSerializers(serializers.ModelSerializer):
    class Meta:
        model = JobPosting
        fields = ('id','sub_name')

class StudentSerializers(serializers.ModelSerializer):
    sub = SubjectSerializers(source = 'student')
    class Meta:
        model = JobPosting
        fields = ('id','first_name', 'last_name','sub')
如何获取序列化程序中每个学生的主题计数,现在我正在获取主题表数据,但我希望这样的计数

"detail": [{
        "id": 680,
        "first_name": "riya",
        "last_name": "tri",
        "subject_count": 5
      }],

您可以通过使用

然后StudentSerializer变为以下内容:

class StudentSerializers(serializers.ModelSerializer):
    sub = SubjectSerializers(source = 'student')
    subject_count = serializers.SerializerMethodField()

    class Meta:
        model = JobPosting
        fields = ('id','first_name', 'last_name','sub')

    def get_subject_count(self, student):
        return Subject.objects.filter(student=student).count()

您可以通过使用

然后StudentSerializer变为以下内容:

class StudentSerializers(serializers.ModelSerializer):
    sub = SubjectSerializers(source = 'student')
    subject_count = serializers.SerializerMethodField()

    class Meta:
        model = JobPosting
        fields = ('id','first_name', 'last_name','sub')

    def get_subject_count(self, student):
        return Subject.objects.filter(student=student).count()

这会对性能产生什么影响?这不会对每个JobPosting对象执行单独的查询吗?这会对性能产生什么影响?这不会对每个JobPosting对象执行单独的查询吗?