如何在Django中使用serializers.serialize将具有特定字段的对象序列化?

时间:2018-11-25 10:31:15

标签: python django

我只想为某些特定字段序列化Django模型。我怎么做。我有一个如下模型:

class Person(models.Model):
    first_name = models.CharField(max_length=20)
    last_name = models.CharField(max_length=20)

    def __str__(self):
        return self.first_name

我将serailizer用作:

from django.core import serializers

serializers.serialize('json', Person.objects.all(), content_type='application/json')

我的输出是:

[
   {
       model: "myapp.Person",
       pk: 1,
       fields: {
           "first_name": "hello",
           "last_name": "world"
       }
   }
]

我只想为first_name序列化此模型,并且输出必须如下:

[
   {
       model: "myapp.Person",
       pk: 1,
       fields: {
           "first_name": "hello"
       }
   }
]

1 个答案:

答案 0 :(得分:0)

Person.objects.all()中也包含first_name值。您可以通过以下方式访问它:

for p in Person.objects.all():
    p.first_name

有关详细信息,请阅读documentation

更新:

要进行序列化,请尝试以下操作:

serializers.serialize("json", Person.objects.all(), fields=["first_name", "last_name"])