1

システムに新しいユーザーを登録するために、Django 1.9 で Django Rest Auth を使用しています。また、このプロセスで追加のコードを実行して、追加のデータを別のテーブルに保存する必要があります。

誰もがそれを行うための最良の方法を知っていますか?

4

2 に答える 2

3

CustomRegisterSerializerを記述し、 settings.pyファイルに追加します。

    REST_AUTH_REGISTER_SERIALIZERS = {
        "REGISTER_SERIALIZER":"common_app.serializers.CustomRegisterSerializer"
    }

新しく作成したシリアライザーの save() メソッドを記述、追加の実行コードを追加します。
ユーザー モデルに余分なフィールドがある場合は、validate_fieldメソッドを記述できます。

参考までに、ここでrest_auth RegistrationSerializerを確認できますhttps://github.com/Tivix/django-rest-auth/blob/master/rest_auth/registration/serializers.py

これが役立つことを願っています。

于 2016-04-14T09:45:24.757 に答える
0

上記の@ashish2pyの返信に同意します:

ただし、他の参照用にカスタムシリアライザーの保存メソッドの例を追加したい。

手順:

  1. settings.py ファイルで、以下の行を追加します。(アプリ名が「common_app」であると仮定)

    REST_AUTH_REGISTER_SERIALIZERS = {
        "REGISTER_SERIALIZER":"common_app.serializers.CustomRegisterSerializer"
    }
    
  2. common_app/serializer.py ファイルに、以下のように CustomRegisterSerializer クラスを追加します (save メソッドをオーバーライドします)。

    class CustomRegisterSerializer(RegisterSerializer):
      def save(self, request):
        user = super(CustomRegisterSerializer, self).save(request)
        logger.debug("[GroupProfile-Manager] Manager user registration #{}: {}".format(user.id, user.email))
    
    
        ### YOUR CUSTOM LOGIC GOES HERE ###
    
        group_prof_obj.join(user=user, role='manager')
    
        return user
    
于 2016-10-27T04:24:40.690 に答える