1

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

4

0 回答 0