最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django序列化時使用外鍵的真實值操作

 更新時間:2020年07月15日 11:31:24   作者:tmpbook  
這篇文章主要介紹了django序列化時使用外鍵的真實值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

展示:

一般情況下序列化得到的外鍵的內(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
}
...

序列化時得到外鍵的真實值:

...
{
 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表的時候才可以使用到Module的真實值

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'),)

序列化是否使用真實值:

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"同縮進
 natural_key.dependencies = ['example_app.module']

補充知識:django原生的序列化serialize解析

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

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

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

上代碼:

from django.core.serializers import serialize

class Test(APIView):
 def get(self,request):
 origin_data = Test.objects.all()
 serialized_data = serialize('json',origin_data)
 return HttpResponse(serialized_data )

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

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

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

相關(guān)文章

  • python腳本實現(xiàn)分析dns日志并對受訪域名排行

    python腳本實現(xiàn)分析dns日志并對受訪域名排行

    這篇文章主要介紹了python腳本實現(xiàn)分析dns日志并對受訪域名排行,本文是在Windows服務(wù)器環(huán)境中實現(xiàn),需要的朋友可以參考下
    2014-09-09
  • 解決django跨域的問題小結(jié)(Hbuilder X)

    解決django跨域的問題小結(jié)(Hbuilder X)

    使用Django開發(fā)時,可能會遇到跨域問題,尤其是當(dāng)后端與HbuilderX開發(fā)的前端結(jié)合使用時,解決此問題的關(guān)鍵步驟包括安裝django-cors-headers庫,并在Django的settings.py中進行相應(yīng)配置,本文給大家介紹解決django跨域的問題小結(jié),感興趣的朋友一起看看吧
    2024-10-10
  • Django多層嵌套ManyToMany字段ORM操作詳解

    Django多層嵌套ManyToMany字段ORM操作詳解

    這篇文章主要介紹了Django多層嵌套ManyToMany字段ORM操作詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 使用with torch.no_grad():顯著減少測試時顯存占用

    使用with torch.no_grad():顯著減少測試時顯存占用

    這篇文章主要介紹了使用with torch.no_grad():顯著減少測試時顯存占用問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 用Python復(fù)現(xiàn)二戰(zhàn)德軍enigma密碼機

    用Python復(fù)現(xiàn)二戰(zhàn)德軍enigma密碼機

    大家好,本篇文章主要講的是用Python復(fù)現(xiàn)二戰(zhàn)德軍enigma密碼機,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Python接口自動化之request請求封裝源碼分析

    Python接口自動化之request請求封裝源碼分析

    這篇文章主要介紹了Python接口自動化之request請求封裝源碼分析,文章圍繞主題的相關(guān)資料展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06
  • pytorch 數(shù)據(jù)預(yù)加載的實現(xiàn)示例

    pytorch 數(shù)據(jù)預(yù)加載的實現(xiàn)示例

    在PyTorch中,數(shù)據(jù)加載和預(yù)處理是深度學(xué)習(xí)中非常重要的一部分,本文主要介紹了pytorch 數(shù)據(jù)預(yù)加載的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • ansible動態(tài)Inventory主機清單配置遇到的坑

    ansible動態(tài)Inventory主機清單配置遇到的坑

    這篇文章主要介紹了ansible動態(tài)Inventory主機清單配置遇到的坑,需要的朋友可以參考下
    2020-01-01
  • python中Flask?Web?表單的使用方法介紹

    python中Flask?Web?表單的使用方法介紹

    這篇文章主要介紹了python中Flask?Web?表單的使用方法介紹,表單的操作是Web程序開發(fā)中最核心的模塊之一,絕大多數(shù)的動態(tài)交互功能都是通過表單的形式實現(xiàn)的。更多介紹需要的小伙伴可以參考下面文章內(nèi)容
    2022-05-05
  • tensorflow轉(zhuǎn)onnx的實現(xiàn)方法

    tensorflow轉(zhuǎn)onnx的實現(xiàn)方法

    本文主要介紹了tensorflow轉(zhuǎn)onnx的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評論

巴里| 房山区| 丹阳市| 盘锦市| 牙克石市| 安福县| 延津县| 湘乡市| 武功县| 米脂县| 澄城县| 衡阳县| 广饶县| 江华| 高阳县| 库尔勒市| 城固县| 白水县| 通州市| 凤山市| 北安市| 紫阳县| 淮北市| 邻水| 闽侯县| 吉水县| 吴旗县| 庄河市| 临邑县| 郎溪县| 沈丘县| 沐川县| 扶风县| 元阳县| 措美县| 朝阳区| 深泽县| 策勒县| 景东| 积石山| 浑源县|