Я сериализация QuerySet Джанго, который дает мне выход, какНастройка JSON сериализатор в Django
[{"pk": 3, "model": "appname.somemodel", "fields": {"name": "value", "name": "value" }}]
Я заинтересован только в полях. Поэтому я пытаюсь переопределить сериализатор.
Я попытался
from django.core.serializers.json import Serializer
class JSONSerializer(Serializer):
def end_serialization(self):
for i, obj in enumerate(self.objects):
self.objects[i] = obj.get('fields', {})
return super(JSONSerializer, self).end_serialization()
, но я получаю сообщение об ошибке атрибута:
'JSONSerializer' object has no attribute 'objects'
Я проверил https://github.com/django/django/blob/master/django/core/serializers/python.py
и Serializer действительно есть список под названием objects
так, что является причиной этой проблемы?
Есть ли у Django способ пропускать pk
и model
из моего сериализованного выхода?
Спасибо! Это сработало. Но почему 'id' /' pk' опущен из списка? Я даже попробовал 'JSONSerializer(). Serialize (self.get_queryset(), fields = ('id', 'pk',))', но он не печатает идентификатор. – Jamgreen
Вы должны вставить его самостоятельно. Я обновил свой пример. –
Отлично. Спасибо! Но это не сериализует мои аннотированные поля. Кажется странным. Они находятся в наборе запросов. – Jamgreen