Несколько представлений одного и того же экземпляра в DRF
Я использую DRF, чтобы сделать доступными некоторые наборы данных из моего бэкенда Django (2.2.24) и использовать Listfield-Serializer, чтобы показать их через мой API в виде списка. qualificatonIds
- это поле "многие ко многим" в модели, которое связывает topic
экземпляр с некоторыми qualification
экземплярами и наоборот.
Serializer:
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": ""
}
]
Конкретная модель-часть:
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",
)