Проблема сериализации DRF: объединение django-simple-history и django-polymorphic - PullRequest
0 голосов
/ 23 июня 2019

Я использую обычные модели Django, но теперь начал внедрять полиморфную модель в мой проект API DRF REST, используя django-polymorphic и rest-polymorphic.Я также использую django-simple-history для отслеживания изменений в записях в моей базе данных.Все это прекрасно работает для нормальных моделей и полиморфных моделей без поля HistoricalRecords(), но возникают ошибки при попытке взаимодействия с любой полиморфной моделью, имеющей поле HistoricalRecords():

django.core.exceptions.FieldError: Cannot resolve keyword 'material_ptr_id' into field.

В моем сериализаторе для полиморфныхВ моделях я использую следующую технику для сериализации поля history:

class HistoricalRecordField(serializers.ListField):
    child = serializers.DictField()

    def to_representation(self, data):
        return super().to_representation(data.values())


class ItemSerializer(serializers.ModelSerializer):
    history = HistoricalRecordField(read_only=True)

    class Meta:
        model = Item
        fields = ('history')

Есть ли способ исключить поле material_ptr_id из учета сериализатором, поскольку оно не является частьюродительская модель, но только дочерние модели?Или есть какие-то очевидные другие ошибки, которые я делаю?Спасибо за любую помощь с этим.

...