from django.dispatch import receiver from django.db.models.signals import pre_save from django.contrib.auth.models import User @receiver(pre_save, sender=User, dispatch_uid='set_unusable_password') def set_unusable_password(sender, instance, **kwargs): if not instance.password: instance.set_unusable_password()