Несколько представлений одного и того же экземпляра в DRF

#django #django-rest-framework #python-3.6 #django-serializer

Вопрос:

Я использую DRF, чтобы сделать некоторые наборы данных из моего бэкенда Django (2.2.24) доступными для доступа, и использую сериализатор полей списка, чтобы отображать их через мой API в виде списка. qualificatonIds является полем «многие ко многим» в модели, которое соединяет topic экземпляр с некоторыми qualification экземплярами и наоборот.

Сериализатор:

 class TopicListField(serializers.ListField):  id = serializers.PrimaryKeyRelatedField(source='pk', read_only=True)  code = serializers.CharField(source='category.code', read_only=True)  qualificationIds = serializers.PrimaryKeyRelatedField(source='qualifications', many=True, default=[], read_only=True)  equipmentIds = serializers.PrimaryKeyRelatedField(source='equipments', many=True, default=[], read_only=True)  miscEquipment = serializers.CharField(source='misc_equipment', read_only=True)  

Я вывел список, включающий два разных экземпляра одной и той же записи базы данных с разными первичными ключами. Мой ожидаемый результат-список с одним экземпляром, в котором два разных первичных ключа хранятся в одном списке. Как я могу хранить их в одном экземпляре?

Выход:

 "topics": [  {  "id": 17,  "code": "AAK",  "qualificationIds": [  35  ],  "equipmentIds": [  7  ],  "miscEquipment": ""  },  {  "id": 17,  "code": "AAK",  "qualificationIds": [  35  ],  "equipmentIds": [  6  ],  "miscEquipment": ""  } ]  

Ожидаемый Результат:

 "topics": [  {  "id": 17,  "code": "AAK",  "qualificationIds": [  35  ],  "equipmentIds": [  6  7  ],  "miscEquipment": ""  } ]  

Specific model-part:

 class QualificationMixin(models.Model):   # noinspection PyUnresolvedReferences  qualifications = models.ManyToManyField(  'Topic',  db_index=True,  verbose_name='Voraussetzungen (Kurse)',  related_name='%(class)s_list',  blank=True,  help_text="Welche Kurseinhalte müssen von den Teilnahmern für den Kurs beherrscht werden",  )