我正在使用常规的 Django 模型,但现在已经开始使用 和 将多态模型合并到我的 DRF REST API 项目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
序列化器考虑该字段,因为它不是父模型的一部分,而只是子模型的一部分?还是我犯了其他明显的错误?感谢您对此的任何帮助。