1

私は通常の Django モデルを使用していますが、今では と を使用して、ポリモーフィック モデルを DRF REST API プロジェクトに組み込み始めていdjango-polymorphicますrest-polymorphicdjango-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