41

models.py :

class Car():
    producer = models.ForeignKey(Producer, blank=True, null=True,)
    color = models.CharField()
    car_model = models.CharField()
    doors = models.CharField()

serializers.py :

class CarSerializer(ModelSerializer):

    class Meta:
        model = Car
        fields = Car._meta.get_all_field_names()

したがって、ここではすべてのフィールドを使用したいと思います。しかし、私はエラーがあります:

モデル のフィールド名producer_idが無効ですCar

それを修正する方法は?

ありがとう!

4

3 に答える 3

9

を使用fields = '__all__'してすべてのフィールドを取得するか、限られた数のフィールドを返すかどうかを指定できます。ドキュメントを参照してください。

しかし、これはid外部キーフィールドの値を返します。つまりproducer、あなたの場合です。のすべてのフィールドを取得するには、そのためproducerのシリアライザー クラスも作成する必要があります。ここを参照してください。

したがって、更新されたserializers.pyは次のようになります。

class ProducerSerializer(ModelSerializer):
    class Meta:
        model = Producer

class CarSerializer(ModelSerializer):
    producer= ProducerSerializer(read_only=True)

    class Meta:
        model = Car
        fields = ('producer', 'color', 'car_model', 'doors', )
于 2016-08-25T06:19:05.120 に答える