MCPcopy
hub / github.com/django/django / handle

Method handle

django/contrib/auth/management/commands/createsuperuser.py:92–254  ·  view source on GitHub ↗
(self, *args, **options)

Source from the content-addressed store, hash-verified

90 return super().execute(*args, **options)
91
92 def handle(self, *args, **options):
93 username = options[self.UserModel.USERNAME_FIELD]
94 database = options["database"]
95 user_data = {}
96 verbose_field_name = self.username_field.verbose_name
97 try:
98 self.UserModel._meta.get_field(PASSWORD_FIELD)
99 except exceptions.FieldDoesNotExist:
100 pass
101 else:
102 # If not provided, create the user with an unusable password.
103 user_data[PASSWORD_FIELD] = None
104 try:
105 if options["interactive"]:
106 # Same as user_data but without many to many fields and with
107 # foreign keys as fake model instances instead of raw IDs.
108 fake_user_data = {}
109 if hasattr(self.stdin, "isatty") and not self.stdin.isatty():
110 raise NotRunningInTTYException
111 default_username = get_default_username(database=database)
112 if username:
113 error_msg = self._validate_username(
114 username, verbose_field_name, database
115 )
116 if error_msg:
117 self.stderr.write(error_msg)
118 username = None
119 elif username == "":
120 raise CommandError(
121 "%s cannot be blank." % capfirst(verbose_field_name)
122 )
123 # Prompt for username.
124 while username is None:
125 message = self._get_input_message(
126 self.username_field, default_username
127 )
128 username = self.get_input_data(
129 self.username_field, message, default_username
130 )
131 if username:
132 error_msg = self._validate_username(
133 username, verbose_field_name, database
134 )
135 if error_msg:
136 self.stderr.write(error_msg)
137 username = None
138 continue
139 user_data[self.UserModel.USERNAME_FIELD] = username
140 fake_user_data[self.UserModel.USERNAME_FIELD] = (
141 self.username_field.remote_field.model(username)
142 if self.username_field.remote_field
143 else username
144 )
145 # Prompt for required fields.
146 for field_name in self.UserModel.REQUIRED_FIELDS:
147 field = self.UserModel._meta.get_field(field_name)
148 user_data[field_name] = options[field_name]
149 if user_data[field_name] is not None:

Callers

nothing calls this directly

Calls 15

_validate_usernameMethod · 0.95
_get_input_messageMethod · 0.95
get_input_dataMethod · 0.95
get_default_usernameFunction · 0.90
CommandErrorClass · 0.90
capfirstFunction · 0.90
validate_passwordFunction · 0.90
getpassMethod · 0.80
db_managerMethod · 0.80
get_fieldMethod · 0.45
isattyMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected