首页 > 解决方案 > django serialize 由于某种原因排除主键

问题描述

我的模型如下:

class PolicyRule(models.Model):
    uid = models.IntegerField(default=0, primary_key=True, unique=True)
    maxAmount = models.FloatField()
    destinations = models.TextField()

由于某种原因,以下代码

rules_list = PolicyRule.objects.all()
paginator = Paginator(rules_list, 5)
rules = paginator.page(page)
rules_json = serialize('json', list(rules))

产生这个输出 "[{\"model\": \"webapp.policyrule\", \"pk\": 1576966788, \"fields\": {\"maxAmount\": 50.0, \"destinations\": \"ronen\"}}]"

没有 UID 字段!为什么会这样?

标签: djangodjango-modelsdjango-serializer

解决方案


您可以使用在输出 JSON中表示的字段将字段设置uid为主键。即,该值表示字段的值primary_key=Truepk

"pk": 1576966788uid


不能将uid字段包含在fields. 如果您想对数据进行更多自定义,请使用Django REST Framework的DRF 序列化


推荐阅读