В документации Django написано следующее:
set_unusable_password() - Marks the user as having no password set. ...
You may need this if authentication for your application takes place against an existing external source such as an LDAP directory.
В данном случае было бы оптимальнее использовать эту функцию для установки пароля, вместо генерирования случайного. В дальнейшем можно проверять установлен ли пароль с помощью функции has_usable_password()
Причем даже не нужно использовать set_unusable_password() явно - если не указать пароль в User.objects.create_user(), то он заполняется значением set_unusable_password()
В документации Django написано следующее: set_unusable_password() - Marks the user as having no password set. ... You may need this if authentication for your application takes place against an existing external source such as an LDAP directory. В данном случае было бы оптимальнее использовать эту функцию для установки пароля, вместо генерирования случайного. В дальнейшем можно проверять установлен ли пароль с помощью функции has_usable_password()