av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

django序列化時(shí)使用外鍵的真實(shí)值操作

瀏覽:5日期:2024-09-25 15:34:22

展示:

一般情況下序列化得到的外鍵的內(nèi)容只是id:

...{ fields: { uat_date: '2015-07-25', statu: 'CG', name: '慢贏優(yōu)化', tester: [ 1 ], product_manager: 1, module: [ 2, 3 ], project: 1, plan_version: 1, publish_date: '2015-07-25', actual_version: 1, type: 'XQ', developer: [ 1 ] }, model: 'amazingTable.content', pk: 1}...

序列化時(shí)得到外鍵的真實(shí)值:

...{ fields: { uat_date: '2015-07-25', statu: 'CG', name: '慢贏優(yōu)化', tester: [ [ 'kevin' ] ], product_manager: [ 'kevin' ], module: [ [ 'closewebbus', '我是描述' ], [ 'xckhapp', '我是描述' ] ], project: 1, plan_version: 1, publish_date: '2015-07-25', actual_version: 1, type: 'XQ', developer: [ [ 'kevin' ] ] }, model: 'amazingTable.content', pk: 1}...

方法:

我序列化的是Content表,它含有一個外鍵關(guān)聯(lián)的是Module表,1對多

我要先序列化Module表,然后序列化Content表的時(shí)候才可以使用到Module的真實(shí)值

class ModuleManager(models.Manager): def get_by_natural_key(self, name, description): return self.get(name = name, description = description)class Module(models.Model): objects = ModuleManager() name = models.CharField(max_length=100, unique=True) description = models.CharField(max_length=100, blank=True, null=True) # natual_key的序列化 def natural_key(self): return (self.name, self.description) # natual_keys的解序列化 class Meta: unique_together = ((’name’, ’description’),)

序列化是否使用真實(shí)值:

jsons = serializers.serialize(’json’, queryset,use_natural_foreign_keys=False)

jsons = serializers.serialize(’json’, queryset,use_natural_foreign_keys=True)

附:

如果要給Content表序列化,那么要使用到外鍵的actual_key,要保證外鍵先序列化,如下依賴:

class Content(models.Model): name = models.CharField(max_length=100) ... module = models.ManyToManyField(’Module’) def natural_key(self): return (self.name,) + self.module.natural_key() # 和'def'同縮進(jìn) natural_key.dependencies = [’example_app.module’]

補(bǔ)充知識:django原生的序列化serialize解析

在寫接口的時(shí)候,大家都離不開對query結(jié)果集的序列化

嗯嗯嗯,一般我們都有DRF里面的序列化工具,但是django原生的serialize你們有

用過嗎?????????????

上代碼:

from django.core.serializers import serializeclass Test(APIView): def get(self,request): origin_data = Test.objects.all() serialized_data = serialize(’json’,origin_data) return HttpResponse(serialized_data )

當(dāng)然,再有更便捷的工具的情況下,這種方法并不常用

在有特定需要的時(shí)候,使用這種django原生序列化,還是十分方便的

以上這篇django序列化時(shí)使用外鍵的真實(shí)值操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 久久久久成人精品免费播放动漫 | 综合婷婷 | 亚洲一级淫片 | 99综合网 | 日韩中文字幕在线视频观看 | 精品www| 永久免费视频 | 亚洲免费久久久 | 91视频精选 | 亚洲精品久久久一区二区三区 | 伊人春色在线观看 | 久久精品 | 综合久久综合久久 | 日韩在线一区二区三区 | 五月综合激情婷婷 | 中文字幕亚洲精品在线观看 | 国产精品成人一区二区三区 | 国产a视频| 国产日韩欧美激情 | 尤物在线 | 在线激情视频 | 欧美激情国产精品 | 欧美日韩精品在线免费观看 | 日韩在线不卡视频 | 亚洲一在线 | 天天天天操| 国产成人免费在线观看 | 波多野结衣中文字幕一区二区三区 | 一区二区在线不卡 | 欧美日韩综合视频 | 午夜成人免费视频 | 久久成人精品视频 | 久久久久一区二区三区 | 日本不卡一区二区三区 | 国产精品一区二区久久精品爱微奶 | 91国自视频 | 日本久草| 精品国产乱码久久久久久蜜柚 | 国产激情视频网址 | 国产欧美一区二区久久性色99 | 亚洲狠狠 |