#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", )