Django

更新処理のつづき(Total:20day62h)

Serializerの更新処理をいろいろ試す!

まだまだ、更新処理と格闘中!

シリアライザーでバリデーションチェックを追加してみてみる

バリデーションがかかってないよーみたいな、エラーメッセージがでてるのでバリデーションチェックを追加してみます。

class OpneFlgChangeSerializer(serializers.Serializer):
    """
    公開フラグ変更用シリアライザー
    """
    def validate(self, data):
        """
        入力チェック
        """
        print(data)
        return data

はい、特に解決にいたりません(笑)

では、どうしよー(´;ω;`)って、思ってたんですがやっぱりこうい時は、公式サイトを読もうと思います

DjangoSerializerの公式サイトでUpdateサンプルを確認

https://www.django-rest-framework.org/api-guide/serializers/#saving-instances

class CommentSerializer(serializers.Serializer):
    email = serializers.EmailField()
    content = serializers.CharField(max_length=200)
    created = serializers.DateTimeField()

    def create(self, validated_data):
        return Comment(**validated_data)

    def update(self, instance, validated_data):
        instance.email = validated_data.get('email', instance.email)
        instance.content = validated_data.get('content', instance.content)
        instance.created = validated_data.get('created', instance.created)
        return instance

中身見てたんですが、よく見たらModelSerializerじゃないからダメかも(笑)
自作Serializerの場合は、フィールドとそれをバリデーションしたものでインスタンス化したもので保存するってイメージですかね。

どうしたらいいかわからなくなってきた

色々ためしていたんですが、どれもうまくいかず…

よく考えたら、Vueからインスタンス全体がなぜ送られてきているかも?状態です。

だって、Vueで指示してるのは、dataの中にIDとOpenフラグの情報を追加して送ってねー!

だけなのに…

受け取ったシリアライザーがなぜ判断できているんだろう?

-Django

© 2022 ごろう@縁紡ぐ