0

この非常に役立つエラー「ATypeError at / init () got multiple values for keyword argument 'read_only'」は、次のシリアライザーで発生しています

class UserSerializer(serializers.ModelSerializer):
    posts = serializers.HyperlinkedIdentityField('posts', lookup_field='username', read_only=True)

    class Meta:
        model = User
        fields = ('id', 'username', 'first_name', 'last_name', 'posts', )


class PostSerializer(serializers.ModelSerializer):
    author = UserSerializer(required=False,  read_only=True)
    photos = serializers.HyperlinkedIdentityField('photos', read_only=True)
    # author = serializers.HyperlinkedRelatedField(view_name='user-detail', lookup_field='username')

    def get_validation_exclusions(self, *args, **kwargs):
        # Need to exclude `user` since we'll add that later based off the request
        exclusions = super(PostSerializer, self).get_validation_exclusions(*args, **kwargs)
        return exclusions + ['author']

    class Meta:
        model = Post


class PhotoSerializer(serializers.ModelSerializer):
    image = serializers.Field('image.url' , read_only=True)


    class Meta:
        model = Photo

何か助けてください。

4

1 に答える 1

3

フィールドHyperlinkedIdentityField常に read-onlyであるため、 read_only 引数はサポートされていません。使用できる引数:

  • ビュー名
  • ルックアップ フィールド
  • lookup_url_kwarg
  • フォーマット
于 2015-05-07T04:52:20.283 に答える