django-rejestracja 1.0 ma teraz obsługę niestandardowych modeli użytkowników django 1.5. Dokumentacja rejestracyjna django zawiera tylko następujący element FAQ dotyczący tego:Podklasy Django-rejestracja 1.0 formularze dla niestandardowych modeli użytkowników django 1.5
Używam Django 1.5 i niestandardowego modelu użytkownika; jak mogę wykonać tę pracę?
Mimo dwóch wbudowanych backendów zasilanych django rejestracji zarówno zakładać domyślnego modelu użytkownika Django, podstawa widok zajęcia są celowo przez użytkownika modelu agnostykiem. Po prostu podklasy je i wdrożyć logikę dla niestandardowego modelu użytkownika.
Nie jestem pewien, które widoki muszę podklasy i co należy w nich. Zauważyłem także, że ProfileManager
w rejestracji django nadal przyjmuje osobne pole nazwy użytkownika.
W moim konkretnym przypadku, usunęliśmy pole „Nazwa użytkownika”, dodał „DISPLAY_NAME” i uczynił „email” pole identyfikacji:
class MyUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(
verbose_name="Email Address",
max_length=384,
unique=True,
db_index=True,)
display_name = models.CharField(max_length=128, blank=True)
date_joined = models.DateTimeField(default=timezone.now)
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
objects = MyUserManager()
USERNAME_FIELD = 'email'
def get_full_name(self):
return self.email
def get_short_name(self):
return self.email
def __unicode__(self):
return self.email
def has_perm(self, perm, obj=None):
return True
def has_module_perms(self, app_label):
return True
@property
def is_staff(self):
return self.is_admin
Bez żadnych klas instacji Django-rejestracji, domyślne renderowanie formularza rejestracyjnego ciągnie w polach od User
zamiast MyUser
.
Widziałem następujący wątek SO django-registration app and Django 1.5 custom user model, ale to nie pomogło.
Aktualizacja
Zauważyłem, że RegistrationForm jest sztywno z pola 'Nazwa użytkownika'. W Najczęściej zadawanych pytaniach wspomina się tylko o podklasowaniu zaplecza, więc nie jestem pewien, co to jest zamiar. Czy powinienem również podklasować formularz?
Proszę spojrzeć na ten popełnić - https://bitbucket.org/LinnTroll/django-registration-1.5/commits/c71d5b8e273551cffdfc7869545430e3 !! Potrzebna jest do tego podklasa 'DefaultBackend',' RegistrationFormFromUserModel' oraz 'RegistrationManager'. – pankaj28843
Czy zmieniono AUTH_USER_MODEL na nowy niestandardowy model użytkownika w settings.py? – Wei
Co się stało? Zastanawiam się, czy po prostu to potraktować, ale wyraźnie zdefiniować pola w formularzu rejestracyjnym zamiast po prostu użyć znacznika szablonu 'form'. Nie idealne, ale myślę, że to najprostsza opcja. – bnjmn