Django Wars [Parte 04]: Cadastro de usuário

O Django Wars foi idealizado e desenvolvido no Django 1.4. Algumas funcionalidades aqui descritas podem não funcionar ou funcionar de forma diferente em outras versões do Django

O Django possui uma conjunto de ferramentas para facilitar a criação e autenticação de usuários, a biblioteca django.contrib.auth.
Um problema a menos para nos preocuparmos :D.
Nesta etapa do desenvolvimento vamos utilizar dessa facilidade que o Django nos fornece para criar a tela de registro do usuário.

Para que possamos fazer uso desta facilidade, precisamos que a biblioteca django.contrib.auth e a biblioteca django.contrib.contenttypes estejam cadastradas no INSTALLED_APPS, dentro do arquivo settings.py (eles já vem ativados por padrão).

Feito isso, precisamos que o Django crie no nosso banco de dados o conjunto de tabelas que essas bibliotecas precisam para funcionar.
Para isso rodamos o comando syncdb.

Com isso, o Django está pronto para cuidar dos registros e autenticações dos seus usuários.
Note também que o Django ajuda você a criar uma conta de superadmin.

Criando a tela de cadastro

Para facilitar a criação de formulários de cadastro, assim como formulários de logins e de trocas de senhas, o Django possui a seguinte biblioteca: django.contrib.auth.forms.
Nela, encontramos o formulário UserCreationForm que vamos utilizar para cadastrar os nossos novos usuários.
Para isso, vamos editar novamente o arquivo views.py criando uma função com o nome registrar().

Note que na views registrar estamos utilizando a função render() e na view index estamos utilizando render_to_response.
Isto se dá pois precisamos que nossa visão possua também o contexto da requisição, que está na variável request, para podermos utilizar a facilidade de crsf.
Esta facilidade será utilizada no template (logo abaixo).

Também, precisamos informar ao Django sobre a URL de cadastro do usuário.
Para isso, alteramos o arquivo urls.py

Por fim, criamos o arquivo registrar.html, que irá conter o formulário de cadastro, dentro da pasta templates.

Como sempre, o código atual do projeto pode ser visualizado em:
https://github.com/frenetic/django-wars

12 thoughts on “Django Wars [Parte 04]: Cadastro de usuário

  1. Esse código aí tem um erro, vc deve criar uma instancia do UserCreationForm antes do teste de post, caso contrário o form não será renderizado! 😀

  2. Olá, tudo bem?
    Primeiramento gostaria de agradecer pelo ótimo tutorial, nunca imaginei que daria pra construir um web game com django.

    Estou tendo o seguinte erro:

    ttributeError at /registrar

    ‘module’ object has no attribute ‘registrar’

    Request Method: GET
    Request URL: http://127.0.0.1:8000/registrar
    Django Version: 1.4
    Exception Type: AttributeError
    Exception Value:

    ‘module’ object has no attribute ‘registrar’

    Exception Location: /home/natan/django_wars/django_wars/urls.py in , line 11
    Python Executable: /home/natan/project_django_wars/bin/python
    Python Version: 2.7.5

    Segue meu código: https://github.com/NatanCC/django_wars

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *