Я использую обычные модели 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
из учета сериализатором, поскольку оно не является частьюродительская модель, но только дочерние модели?Или есть какие-то очевидные другие ошибки, которые я делаю?Спасибо за любую помощь с этим.