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对象执行单独的查询吗?