File indexing completed on 2026-04-27 07:41:41
0001 from django.core.management.base import BaseCommand, CommandError
0002 from django.contrib.auth.models import User
0003 from rest_framework.authtoken.models import Token
0004
0005 class Command(BaseCommand):
0006 help = 'Create or retrieve an API token for a user.'
0007
0008 def add_arguments(self, parser):
0009 parser.add_argument('username', type=str, help='The username for the token.')
0010 parser.add_argument('--create-user', action='store_true', help='Create the user if they do not exist.')
0011
0012 def handle(self, *args, **options):
0013 username = options['username']
0014 create_user = options['create_user']
0015
0016 try:
0017 user = User.objects.get(username=username)
0018 except User.DoesNotExist:
0019 if create_user:
0020 self.stdout.write(self.style.SUCCESS(f'User "{username}" not found. Creating new user.'))
0021 user = User.objects.create_user(username=username)
0022 else:
0023 raise CommandError(f'User "{username}" does not exist. Use --create-user to create it.')
0024
0025 token, created = Token.objects.get_or_create(user=user)
0026
0027 if created:
0028 self.stdout.write(self.style.SUCCESS(f'New token created for user "{username}": {token.key}'))
0029 else:
0030 self.stdout.write(self.style.SUCCESS(f'Token for user "{username}" is: {token.key}'))