由于某种原因,django 序列化排除主键

django serialize exclude primary key for some reason

我的模型如下:

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字段!为什么会这样?

您使用 primary_key=True 将字段 uid 设置为 Primary Key作为 pk 在输出 JSON.

即值 "pk": 1576966788表示uid字段的值


无法将 uid 字段包含在 fields。如果您想对数据进行更多自定义,请使用 DRF Serializers of Django REST Framework