いいえ、models.pyにはありません。モデル側では、適切なアプリ(rest_framework.authtoken
)をに含めるだけですINSTALLED_APPS
。これにより、ユーザーに対して外部キーが設定されたトークンモデルが提供されます。
あなたがする必要があるのは、それらのトークンオブジェクトをいつどのように作成するかを決めることです。アプリでは、すべてのユーザーが自動的にトークンを取得しますか?または、特定の許可されたユーザーのみですか?それとも彼らが具体的に要求したときだけですか?
すべてのユーザーが常にトークンを持っている必要がある場合は、リンク先のページにコードのスニペットがあり、シグナルを設定してトークンを自動的に作成する方法を示しています。
@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
(これをmodels.pyファイルのどこにでも置くと、Djangoスレッドの起動時に登録されます)
トークンを特定の時間にのみ作成する必要がある場合は、ビューコードで、適切な時間にトークンを作成して保存する必要があります。
# View Pseudocode
from rest_framework.authtoken.models import Token
def token_request(request):
if user_requested_token() and token_request_is_warranted():
new_token = Token.objects.create(user=request.user)
トークンが作成(および保存)されると、認証に使用できるようになります。