'from module import *' used; unable to detect undefined names (F403)
from module import *
is discouraged because the programmer often won’t know where an imported object is defined. The imported module, class, or function should be explicitly defined.
Anti-pattern
In the following example, it is unclear whether the User
class is defined in the users.models
module or the auth.models
module.
from users.models import *
from auth.models import *
user = User.objects.get(name='Grant')
Best practice
from users.models import User
from auth.models import check_password
user = User.objects.get(name='Grant')
check_password(user.username, 'password')