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.


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')