【问题标题】:Return specific object atribute serializer Django Rest framework返回特定对象属性序列化器 Django Rest 框架
【发布时间】:2014-05-16 18:12:46
【问题描述】:

我有以下代码,它可以工作,但它返回以下内容。如何更改它以显示 subject.s 字段而不是返回完整对象(Subjects 对象)?有任何想法吗?谢谢。

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

它应该返回

{
    "name": "Andres", 
    "nick": "andresito", 
    "avatar_s": "", 
    "rate": 50, 
    "id": 3, 
    "subjects": [
        "Web Development", 
        "User Experience"
    ]
}

我的 models.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'

我的 Serializers.py 是

类 UserKarmaSerializer(serializers.HyperlinkedModelSerializer):

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

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

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    这个问题的答案只是在你将返回给模型主题的字段中添加一个 unicode

    def __unicode__(self):
        return self.s
    

    【讨论】:

      猜你喜欢
      • 2015-07-10
      • 2021-09-27
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 2021-01-17
      • 1970-01-01
      相关资源
      最近更新 更多