我有我的網站,我用omab/django-social-auth創建用戶閒置爲默認(IS_ACTIVE默認爲false)
我想將用戶重定向到另一個網站,讓他們填寫自己的詳細信息Facebook驗證。所以我想讓用戶在他們第一次使用他們的Facebook帳戶進行身份驗證時處於非活動狀態,然後在完成表單後將他們保存爲活動用戶。
我在我的環境下操作了django/contrib/auth/models.py,與is_active字段一樣,默認值爲False;但他們被保存爲活動用戶 但仍然是相同的結果,即使我從管理面板添加普通用戶。有什麼我失蹤?
class User(models.Model):
"""
Users within the Django authentication system are represented by this
model.
Username and password are required. Other fields are optional.
"""
username = models.CharField(_('username'), max_length=30, unique=True,
help_text=_('Required. 30 characters or fewer. Letters, numbers and '
'@/./+/-/_ characters'))
first_name = models.CharField(_('first name'), max_length=30, blank=True)
last_name = models.CharField(_('last name'), max_length=30, blank=True)
email = models.EmailField(_('e-mail address'), blank=True)
password = models.CharField(_('password'), max_length=128)
is_staff = models.BooleanField(_('staff status'), default=False,
help_text=_('Designates whether the user can log into this admin '
'site.'))
is_active = models.BooleanField(_('active'), default=False,
help_text=_('Designates whether this user should be treated as '
'active. Unselect this instead of deleting accounts.'))
is_superuser = models.BooleanField(_('superuser status'), default=False,
help_text=_('Designates that this user has all permissions without '
'explicitly assigning them.'))
last_login = models.DateTimeField(_('last login'), default=timezone.now)
date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
groups = models.ManyToManyField(Group, verbose_name=_('groups'),
blank=True, help_text=_('The groups this user belongs to. A user will '
'get all permissions granted to each of '
'his/her group.'))
user_permissions = models.ManyToManyField(Permission,
verbose_name=_('user permissions'), blank=True,
help_text='Specific permissions for this user.')
objects = UserManager()
def create_user(self, username, email=None, password=None):
"""
Creates and saves a User with the given username, email and password.
"""
now = timezone.now()
if not username:
raise ValueError('The given username must be set')
email = UserManager.normalize_email(email)
user = self.model(username=username, email=email,
is_staff=False, is_active=False, is_superuser=False,
last_login=now, date_joined=now)
user.set_password(password)
user.save(using=self._db)
return user
這很酷..所以我必須操縱django-social-auth軟件包來添加一個信號......對吧? – tunaktunak 2013-02-27 21:48:31
不是。你可以在你的Django項目中的任何應用程序中做到這一點。如果可以的話,應該避免修補軟件包。 – 2013-02-27 21:49:13
如何檢查用戶是否正在創建,而不僅僅是被修改? – 2017-07-11 06:01:16