fromdjango.appsimportAppConfigfromdjango.coreimportchecksfromdjango.db.models.query_utilsimportDeferredAttributefromdjango.db.models.signalsimportpost_migratefromdjango.utils.translationimportgettext_lazyas_from.importget_user_modelfrom.checksimportcheck_models_permissions,check_user_modelfrom.managementimportcreate_permissionsfrom.signalsimportuser_logged_inclassAuthConfig(AppConfig):default_auto_field="django.db.models.AutoField"name="django.contrib.auth"verbose_name=_("Authentication and Authorization")defready(self):post_migrate.connect(create_permissions,dispatch_uid="django.contrib.auth.management.create_permissions",)last_login_field=getattr(get_user_model(),"last_login",None)# Register the handler only if UserModel.last_login is a field.ifisinstance(last_login_field,DeferredAttribute):from.modelsimportupdate_last_loginuser_logged_in.connect(update_last_login,dispatch_uid="update_last_login")checks.register(check_user_model,checks.Tags.models)checks.register(check_models_permissions,checks.Tags.models)