10 июня 2008 г.

Поддержка поля "Запомнить меня" в формах авторизации в Django

Замечательнейший changeset номер 7586 теперь позволяет реализовать описанный в сабже функционал прямо в методе save() формы авторизации:

from django import newforms as forms
from django.contrib import auth

class LoginForm(forms.Form):
    username = forms.CharField(...)
    password = forms.CharField(...)
    remember_me = forms.BooleanField(...)

    user_cache = None

    ...

    def save(self, request):
        cd = self.cleaned_data
        user = self.user_cache

        auth.login(request, user)

        if not 'remember_me' in cd or not cd['remember_me']:
            request.session.set_expire(0)

        return user

Вот и не используй после этого Django из транка.

зы. Документация по сессиям в Django

0 комментариев: