0

アプリでユーザーのカスタムモデルを作成します。アプリケーション コンポーネントは次のとおりです。

  • ジャンゴ1.8
  • ジャンゴ REST フレームワーク 3.2.4
  • Django-allauth 0.23.0
  • Django-rest-auth 0.5。

ユーザーモデルのコードはpythonfiddle.comで見ることができます。Django-rest-auth 登録エンドポイントに移動すると、次のエラーが表示されます。

ValueError at/rest-auth/registration/
抽象モデルで ModelSerializer を使用できません。

これは、Django-rest-auth に関連する設定です。

AUTH_USER_MODEL='authservice.MyUser'
ACCOUNT_USER_MODEL_USERNAME_FIELD='email'
ACCOUNT_AUTHENTICATION_METHOD='email'
ACCOUNT_EMAIL_VERIFICATION='mandatory'
ACCOUNT_EMAIL_REQUIRED=True    
ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS=2

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

3

私の知る限り、現在 DRF はModelSerializer抽象モデルでの の使用をサポートしていませんが、使用することはできますSerializer

簡単な実装は次のようなものです(テストされていません):

class MyUserSerializer(serializers.Serializer):
    email = serializers.EmailField()
    is_active = serializers.BooleanField(default=False)
    is_admin = serializers.BooleanField(default=False)
    student  = serializers.BooleanField(default=True)

次に、ビューで手動で保存できます。何かのようなもの...

class MyUserView(APIView):
    def post(self, request):
        serializer = MyUserSerializer(data=request.DATA)
        if serializer.is_valid():
            serializer.save()
            return Response(status=status.HTTP_201_CREATED)
        else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

ModelSerializerまた、このチェックアウトの使用を含めるかどうかについての議論については、https://github.com/tomchristie/django-rest-framework/issues/2630およびhttps://github.com/chibisov/drf-extensions/issues /84

お役に立てれば!

于 2015-10-18T07:12:25.133 に答える
1

Post-morten django デバッガーでローカル var 値をより注意深く調べると、問題が rest_framework.authtoken に関連していることがわかります。DRF を再インストールし、INSTALL_APPS リストを書き換えると、すべて OK になります。

于 2015-10-18T09:41:01.253 に答える