Como faço para definir variáveis de sessão a sessão, usando o django-registro e autenticação?
-
20-09-2019 - |
Pergunta
Eu estou usando o django-registration para usuários de log em meu aplicativo.Essa parte funciona bem.A parte que eu não consigo descobrir como configurar as variáveis de sessão quando o utilizador inicia sessão.Por exemplo, eu gostaria de preencher variáveis contendo UserProfile de dados, bem como a saída de algumas outras funções.Em seguida, eu gostaria de ser capaz de a utilizar essa informação na subsequente vista/modelos.
Se alguém pode me apontar para um tutorial on-line ou postar algum código de exemplo, que seria ótimo.
Eu estou usando o django 1.1 e Python 2.6
Solução
Se você não quer armazenamento persistente de dados do usuário (apenas uma sessão adicional de dados), dê uma olhada:
http://docs.djangoproject.com/en/dev/topics/http/sessions/
As sessões de enquadramento será, provavelmente, já habilitado se você usar o django.contrib.auth.
Se você deseja armazenamento persistente de usuário adicional de dados (não apenas em uma sessão, mas no banco de dados), você irá armazená-los em outro "perfil" do modelo:
http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
Outras dicas
Eu percebo @stefanw fornecida uma solução alternativa, mas para responder a pergunta inicial:
Sessão de definição de dados no início da sessão, é difícil, porque é o lugar mais fácil para o conjunto de dados é, na sua opinião, a função e o modo particular de ver a função que você deseja modificar é uma parte da contrib.django.auth app.
Assim, suas opções seriam as seguintes:
- Criar uma pequena middleware de classe para definir os dados da sessão.
- Criar um modelo de marca ou outros bits de código que pode ser integrado para o início de sessão do modelo ou página subsequente que irá definir os dados que você deseja.
- Escrever a sua própria visão login função (é realmente muito fácil, na verdade).
Feliz django-ing!