2013-03-03 20 views
8

Django 1.4.5'te Django 1.5 ile yaptığım bir uygulamayı yükselttim ve özel bir Kullanıcı modeline taşınmayı bitirdim. Uygulamamıza giriş yaptığımda, kendi kimlik doğrulama formumu kullanarak, süper kullanıcı kimlik bilgilerimle (manage.py syncdb yaparken oluşturulur) her şey iyi çalışıyor.Django admin, özel kullanıcı modeli ile düzgün şekilde oturum açmıyor.

Kimlik doğrulaması yapabildiğim ve /admin adresine gidersem beklendiği gibi zaten giriş yaptım. Yönetici panelini mükemmel bir şekilde kullanabilir ve kullanabilirim. Django yönetici giriş formunu kullanarak, /admin gelen yönetici paneline giriş yapmayı Ancak, ben hata alıyorum:

Please enter the correct email and password for a staff account. Note that both fields may be case-sensitive.

bazı soruşturma yoktu ve o ModelAdmin ile ilgili bir şey olabilir düşündüm, bu yüzden dokümanlardaki this example'u izledi ve özel bir ModelAdmin oluşturdu. Ancak sorun hala devam ediyor.

Bu konuda ne gibi bir fikre sahip olabilirsiniz?

+0

Sen AUTH_USER_MODEL settings.py ayarladığınız sağ: on

class CustomUserManager(BaseUserManager): def create_user(self, username, email, password=None): if not username: raise ValueError('Dude you need a username.') if not email: raise ValueError( 'type an e-mail..') new_user = self.model( username=username, email=CustomUserManager.normalize_email(email)) new_user.set_password(password) new_user.save(using=self._db) return new_user def create_superuser(self, username, email, password): new = self.create_user( username, email, password=password ) new.is_active = True new.is_staff = True new.is_superuser = True new.save(using=self._db) return new 

Odak? –

+0

Yup, bu seti aldım. –

+0

User model uzantınız için 'AbstractUser' veya' AbstractBaseUser' kullandınız mı? –

cevap

4

BaseUserManager altında olan create_superuser işlevinize aşağıdaki satırları eklediniz mi? Bu gibi görünebilir:

new.is_active = True 
    new.is_staff = True 
    new.is_superuser = True 
+2

django'nun yönetici kullanıcıları için 'request.user.is_active' ve' request.user.is_staff' kontrolleri yapar, bu yüzden eklenmesi gerektiğini düşünüyorum 'new.is_active =" odaklanmak "için bu listeye doğru. – AJJ