Wiki

Clone wiki

django-openauth / Home

Описание

django-openauth, позволяет вашему проекту с помощью файла настройки создать всевозможные типы регистрации, авторизации, а так же совместить регистрацию с профилем.

Фишки

  • Регистрация по юзер:пароль
  • Регистрация по емэйл:пароль
  • Активация
  • Смена пароля
  • Напоминание пароля
  • Смена емейла

Расширение регистрации (своя форма)

Для указания своей формы регистрации, вы должны указать настройку REGISTRATION_FORM со значением в виде имени модуля и имени класса вашей формы. Для примера

REGISTRATION_FORM = 'my_app.forms.CustomRegistrationForm'

Желательно, ваша форма должна быть сабклассом формы RegistrationForm находящейся в openauth.forms, в таком случае вам не придётся переписывать валидационные функции, а только останется добавить новые поля и переопределить метод save(). Для примера

from django import forms
from django.contrib.auth.models import User

from openauth.forms import RegistrationForm

import project
from project.models import Profile



class CustomRegistrationForm(RegistrationForm):
    gender = forms.ChoiceField(choices=project.settings.GENDER_CHOICES)


    def save(self):
        username = self.cleaned_data['username']
        gender = self.cleaned_data['gender']
        email = self.cleaned_data['login'].lower()
        password = self.cleaned_data['password']
        user = User.objects.create_user(username, email, password=password)
        Profile.objects.create(user=user, gender=gender)
        return user

Изменение шаблонов

Для изменения шаблонов, в директории темплейтов вашего проекта создайте папку openauth, и назовите шаблоны теми же именами как и в оригинале. На данный момент django-openauth поставляется со следующими шаблонами:

  • change_password.html
  • login.html
  • registration.html
  • reset_password.html

Updated