一般情況下序列化得到的外來鍵的內容只是id:
...
, model: "amazingtable.content",
pk: 1
}...
序列化時得到外來鍵的真實值:...
, model: "amazingtable.content",
pk: 1
}...
我序列化的是content表,它含有乙個外來鍵關聯的是module表,1對多
我要先序列化module表,然後序列化content表的時候才可以使用到module的真實值
class
modulemanager
(models.manager):
defget_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的序列化
defnatural_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,要保證外來鍵先序列化,如下依賴:
classcontent
(models.model):
name = models.charfield(max_length=100)
...module = models.manytomanyfield('module')
defnatural_key
(self):
return (self.name,) + self.module.natural_key()
# 和"def"同縮排
django序列化時使用外來鍵的真實值
普通情況下序列化得到的外來鍵的內容僅僅是id model amazingtable.content pk 1 序列化時得到外來鍵的真實值 model amazingtable.content pk 1 我序列化的是content表。它含有乙個外來鍵關聯的是module表。1對多 我要先序列化modu...
jsonconvert 序列化時忽略指定的型別
定義自定義轉換類來忽略特定型別 自定義轉換類 public class customconverter jsonconverter public override void writejson jsonwriter writer,t value,jsonserializer serializer 轉...
django的序列化
關於django的序列化主要應用在將資料庫中檢索的資料返回給客戶端使用者,特別的ajax請求一般返回的json格式 兩種方法 缺點就是只能應用於物件 ret models.book.objects.filter con print ret queryset,物件 就是上面是列表 from djang...