具有内部关系的Django rest_framework串行器 [英] Django rest_framework serializer with inner relationship

查看:145
本文介绍了具有内部关系的Django rest_framework串行器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里有一部分 models.py:

  class Discount(models.Model) 
discount_id = models.AutoField(primary_key = True)
discount_category = models.ManyToManyField(Category)
discount_store = models.ManyToManyField(Store)
...

class Store(models.Model):
store_id = models.AutoField(primary_key = True)
store_company = models.ForeignKey('Company')
store_city = models.ForeignKey('城市',to_field ='city_name')
....

serializer.py:

  class StoreSerializer(serializers.ModelSerializer):
class Meta :
model = Store
fields =('store_location','store_city','store_name','store_address')


class DiscountSerializer(serializers.ModelSerializer) :
class Meta:
model = Discount
fields =('discount_descrip

当我创建JSON的折扣我得到这个JSON。

  [{
discount_description:此处的说明。 ,
discount_start:2014-08-07T14:35:13Z,
discount_end:2014-08-30T14:35:15Z,
discount_title Loremİpsum,
discount_category:[
3
],
discount_store:[
1
]
}]

但是我想在discount_store中查看商店详细信息。我为此尝试了很多关系。但是所有的时间我得到这个JSON。

解决方案

你尝试添加选项 depth 到Meta类?可能是这样的:

  class DiscountSerializer(serializers.ModelSerializer):
class Meta:
model = Discount
fields =('discount_description','discount_start','discount_end','discount_title','discount_category','discount_store')
depth = 1
/ pre>

Here part of my models.py:

class Discount(models.Model):
    discount_id = models.AutoField(primary_key=True)
    discount_category = models.ManyToManyField(Category)
    discount_store = models.ManyToManyField(Store)
    ...

class Store(models.Model):
    store_id = models.AutoField(primary_key=True)
    store_company =models.ForeignKey('Company')
    store_city = models.ForeignKey('City', to_field='city_name')
    ....

Here part of my serializer.py:,

class StoreSerializer(serializers.ModelSerializer):
class Meta:
    model = Store
    fields = ('store_location', 'store_city', 'store_name', 'store_address')


class DiscountSerializer(serializers.ModelSerializer):
    class Meta:
        model = Discount
        fields = ('discount_description', 'discount_start', 'discount_end', discount_title', 'discount_category', 'discount_store')

When I create JSON for discount I get this JSON.

[{
    "discount_description": "Description here.",
    "discount_start": "2014-08-07T14:35:13Z",
    "discount_end": "2014-08-30T14:35:15Z",
    "discount_title": "Lorem İpsum",
    "discount_category": [
        3
    ],
    "discount_store": [
        1
    ]
}]

But I want to see store details in "discount_store". I tried a lot of relationship for this. But all the time I get this JSON.

解决方案

Did you try to add the option depth to the Meta class? Maybe like this:

class DiscountSerializer(serializers.ModelSerializer):
    class Meta:
        model = Discount
        fields = ('discount_description', 'discount_start', 'discount_end', 'discount_title', 'discount_category', 'discount_store')
        depth = 1

这篇关于具有内部关系的Django rest_framework串行器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆