generate_password.py 938 B

12345678910111213141516171819202122232425262728
  1. # -*- coding: utf-8 -*-
  2. try:
  3. from django.contrib.auth.base_user import BaseUserManager
  4. except ImportError:
  5. from django.contrib.auth.models import BaseUserManager
  6. from django.core.management.base import BaseCommand
  7. from django_extensions.management.utils import signalcommand
  8. class Command(BaseCommand):
  9. help = "Generates a new password that can be used for a user password. This uses Django core's default password generator `BaseUserManager.make_random_password()`."
  10. requires_system_checks = False
  11. def add_arguments(self, parser):
  12. parser.add_argument(
  13. '--length', nargs='?', type=int,
  14. help='Password length.')
  15. @signalcommand
  16. def handle(self, *args, **options):
  17. length = options['length']
  18. manager = BaseUserManager()
  19. if length:
  20. return manager.make_random_password(length)
  21. else:
  22. return manager.make_random_password()