1. ホーム
  2. django

[解決済み] Django REST フレームワークでユーザーを登録するには?

2023-01-23 20:28:46

質問

REST APIをコーディングしているのですが Django RESTフレームワーク . この API は、ソーシャルモバイルアプリのバックエンドになる予定です。チュートリアルに従った後、私はすべてのモデルをシリアライズすることができ、新しいリソースを作成し、それらを更新することができるようになりました。

私は認証にAuthTokenを使用しています。

質問なのですが

一度、私は /users リソースができたら、アプリのユーザーが登録できるようにしたいです。そこで、以下のような別のリソースを用意するのがよいでしょうか。 /register のような別のリソースを用意するのが良いのか、それとも匿名ユーザーがPOSTして /users への POS を許可するか?

また、パーミッションに関するガイダンスもあると嬉しいです。

どのように解決するのですか?

私のシリアライザーはパスワードの表示や取得を期待していないので、登録を処理するために独自のカスタムビューを作りました。私は、/users リソースとは異なる URL を作成しました。

私のURLの設定です。

url(r'^users/register', 'myapp.views.create_auth'),

私の見解です。

@api_view(['POST'])
def create_auth(request):
    serialized = UserSerializer(data=request.DATA)
    if serialized.is_valid():
        User.objects.create_user(
            serialized.init_data['email'],
            serialized.init_data['username'],
            serialized.init_data['password']
        )
        return Response(serialized.data, status=status.HTTP_201_CREATED)
    else:
        return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)

間違っているかもしれませんが、認証されていないリクエストをしたいので、このビューのパーミッションを制限する必要はないように思えます ...