【问题标题】:Django Restframework, Forward relationship serializationDjango Rest Framework,前向关系序列化
【发布时间】:2014-02-13 15:47:09
【问题描述】:

我有以下型号:

class GO_BIDS(models.Model):

    GO = models.ForeignKey(GO_PROFILE)
    GO_money = models.CharField()
    GO_currency = models.CharField()

class GO_PROFILE(models.Model):

    User = models.ForeignKey(User)
    Name = models.CharField()
    Photo = models.CharField()
    Phone = models.CharField()

我的序列化器如下所示:

class GO_PROFILESerializer(serializers.ModelSerializer):

    class Meta:
        model = GO_PROFILE
        fields = ('Name', 'Photo')


class GO_BIDSSerializer(serializers.ModelSerializer):

    gprofile = GO_PROFILESerializer(required=True)

    class Meta:
        model = GO_BIDS
        fields = ('id','GO_money','GO_currency','gprofile')

我想得到以下某种结构:

"GO_BIDS": [
            {
                "id": 3, 
                "GO": {
                    "Name":  "Steve", 
                    "Photo": "myphoto.png", 
                }, 
                "GO_money": "12.00", 
                "GO_currency": "USD", 
        }]

我不断得到“GO_BIDS”对象没有属性“gprofile”。 有什么想法吗?

谢谢

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    听起来你想要Nested Relationship。您的 GO_BIDS 模型没有 gprofile 属性。试试这个:

    class GO_BIDSSerializer(serializers.ModelSerializer):
        GO = GO_PROFILESerializer()
    
        class Meta:
            model = GO_BIDS
            fields = ('id','GO_money','GO_currency','GO')
    

    【讨论】:

    • 谢谢,我得到 'GO_PROFILE' 对象不可迭代
    猜你喜欢
    • 2015-12-13
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 2017-10-05
    相关资源
    最近更新 更多