返回特定的对象属性序列化程序Django Rest fram

2024-04-18 14:45:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的代码,它工作,但它返回以下。如何更改它以显示subject.s字段而不是返回完整的object(Subjects-object)???有什么想法吗?谢谢。在

{
    "name": "Andres", 
    "nick": "andresito", 
    "avatar_s": "", 
    "rate": 50, 
    "id": 3, 
    "subjects": [
        "subjects object", 
        "subjects object"
    ]
}

它会回来的

^{pr2}$

我的模型.py是:

class subjects(models.Model):

#id = models.IntegerField(db_column='ID', primary_key=True) # Field name made lowercase.
id_user = models.IntegerField(db_column='ID_user') # Field name made lowercase.
s = models.CharField(max_length=90)
grade = models.IntegerField()
ss = models.CharField(max_length=100)
id_school = models.IntegerField(db_column='ID_school') # Field name made lowercase.
subject_area = models.CharField(max_length=20)
subject_number = models.CharField(max_length=30)
subject_section = models.CharField(max_length=10)
current = models.IntegerField()

class Meta:
    db_table = 'subjects'

class users(models.Model):
#id = models.IntegerField(db_column='ID')  # Field name made lowercase.
nick = models.CharField(unique=True, max_length=60)
name = models.CharField(max_length=80)
rate = models.CharField(max_length=2)
avatar_s = models.CharField(max_length=160)



def user_subjects(self):

    subject = subjects.objects.filter(id_user=self.id)
    return subject

class Meta:

    db_table = 'users'

我的序列化程序.py是

类UserKarmaSerializer(序列化程序.HyperlinkedModelSerializer)公司名称:

subjects = serializers.Field(source='user_subjects')

class Meta:
    model = users
    fields = ('name', 'nick', 'avatar_s', 'rate', 'id', 'subjects')

Tags: nameidfielddbobjectmodelscolumnlength