Widoki i adresy
Przejdź do folderu dolnej stronie (tam gdzie jest plik settings.py) i otwórz pliku views.py. U góry upewnij się, że następujące importowane są włączone. Dodaj je, jeśli nie:
from django.shortcuts import
render_to_response from django.http import HttpResponseRedirect from
django.contrib.auth.forms import UserCreationForm from
django.core.context_processors import csrf
Poniżej że dodać następujące funkcje (można je po funkcji logowania):
def
register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/accounts/register/complete')
else:
form = UserCreationForm()
token = {}
token.update(csrf(request))
token['form'] = form
return render_to_response('registration/registration_form.html', token)
def registration_complete(request):
return render_to_response('registration/registration_complete.html')
Otwórz plik urls.py w folderze miejscu (tym samym folderze jako settings.py). Poniżej url wzorców = wzorce ("", wstaw następujące linie .
# Registration URLs
url(r'^accounts/register/$', 'simplesite.views.register', name='register'),
url(r'^accounts/register/complete/$', 'simplesite.views.registration_complete',
name='registration_complete'),
Szablony Zakładamy własną stronę ma już szablonów katalog i plik base.html z paska nawigacyjnego. Otwórz plik base.html oraz w elemencie nav dodać link do menu nawigacyjnego stronę logowania
<a href="/accounts/register">register</a>
Jeśli ktoś jeszcze nie istnieje, przejdź do folderu szablonów i tworzyć folder wewnątrz nazwany Rejestracja . Utwórz plik o nazwie registration_form.html, zapisz go w folderze templates/rejestracyjnym następnie wypełnić go z poniższej:
{% extends "base.html" %} {% block title %}Register{%
endblock %} {% block content %}
<h2>Registration</h2>
<form action="/accounts/register/" method="post">{% csrf_token %}
{{form.as_p}} <input type="submit" value="Register" />
</form>
{% endblock %}
utworzyć plik o nazwie registration_complete.html, zapisać go w folderze szablonów /Rejestracja i wypełnić go z następujących czynności:
{% extends "base.html" %} {% block title %}You are
Registered{% endblock %} {% block content %}
<h2>Thank you for Registering</h2> <p><a
href="/accounts/login/">Please Login</a></p>
{% endblock %}
Wyświetlenia i adresy URL Otwórz plik views.py w dolnym folderze witryny (gdzie znajduje się plik settings.py). Jeśli go nie ma, utwórz i zapisz. W górnej części pliku wstaw następujący import: od import django.shortcuts render_to_response Poniżej musisz tylko dodać jedną funkcję renderującą stronę loggedin. Pozostałe funkcje (logowanie i wylogowanie) znajdują się w pliku views.py w folderze Django Auth.
def loggedin(request):
return render_to_response('registration/loggedin.html')
# Opcjonalnie, jeśli chcesz pokazać swoją nazwę użytkownika podczas logowania, wywołaj ich nazwę użytkownika w widoku. Zmień funkcję loggedin na:
def loggedin(request):
return render_to_response('registration/loggedin.html',
{'username': request.user.username})
Otwórz plik urls.py w folderze witryny (ten sam folder co plik settings.py). Poniżej urlpatterns = patterns („”, wstawić następujące linie.
# Auth-related URLs:
url(r'^accounts/login/$', 'django.contrib.auth.views.login', name='login'),
url(r'^accounts/logout/$', 'django.contrib.auth.views.logout', name='logout'),
url(r'^accounts/loggedin/$', 'simplesite.views.loggedin', name='loggedin'),
Z simplesite to nazwa folderu, który przechowuje views.py plik, z którego dzwonisz. Otwórz plik settings.py i na na dole wstawić włóż . Domyślnym domyślnym Django jest przekierowanie do/accounts/profile, gdy się logujesz, co jest w porządku, jeśli masz stronę profilu pod tym adresem URL.Jeśli nie, musisz zmienić domyślne ustawienia dla przekierowania logowania adres URL strony zawierającej Twoją loggedin.html stronę:
Szablony
zakładamy swoją witrynę już katalog szablonów i plik base.html z paska nawigacyjnego. Otwórz plik base.html, aw polu element nav dodaj link menu nawigacyjnego do strony logowania. <a href="/accounts/login">login</a>
Dodaj także link do wylogowania. <a href="/accounts/logout">logout</a>
Utwórz katalog o nazwie rejestracji w folderze szablonów.Jeśli zrobisz to za pomocą linii poleceń typu rejestracja mkdir Utwórz plik o nazwie login.html, zapisać go w folderze templates/rejestracji i wypełnić go z następujący:
{% extends "base.html" %}
{% block title %}Log In{% endblock %}
{% block content %}
<form method="post" action="{% url 'django.contrib.auth.views.login' %}">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="login" />
</form>
{% endblock %}
{{ form.as_table }}
używa Django Moduł formularzy do utworzenia formularza. Można utworzyć niesformatowany formularz za pomocą {{ form }}
bez znaczników tabeli HTML lub każde pole wstawić do znaczników akapitu z {{ form.as_p }}
lub jako nieuporządkowaną listę {{ form.as_ul }}
. Opcjonalnie możesz może również ułożyć własną strukturę form i użyć znaczników pól formularza następująco:
{% extends "base.html" %}
{% block title %}Log In{% endblock %}
{% block content %}
<form method="post" action="{% url 'django.contrib.auth.views.login' %}">
{% csrf_token %}
{% if form.errors %}
<p>Your Username or Password were not entered correctly. Please try again.</p>
{% endif %}
<table>
<tr>
<td>{{ form.username.label_tag }}</td>
<td>{{ form.username }}</td>
<td>{{ form.username.errors }}</td>
</tr>
<tr>
<td>{{ form.password.label_tag }}</td>
<td>{{ form.password }}</td>
<td>{{ form.password.errors }}</td>
</tr>
</table>
<input type="submit" value="login" />
</form>
{% endblock %}
Utwórz plik o nazwie loggedin.html, zapisz go do folderu Szablony/rejestracji i wypełnić go z następujących powodów:
{% extends "base.html" %}
{% block title %}Logged In{% endblock %}
{% block content %}
<h2>You are logged in</h2>
{% endblock %}
Jeśli chcesz wyświetlić nazwę użytkownika, należy dokonać korekty pogląd omówione w rozdziale widoki. Następnie zmień loggedin.html szablon do poniżej (zmienić sformułowania jak uważasz):
{% extends "base.html" %}
{% block title %}Logged In{% endblock %}
{% block content %}
<h1>Welcome {{username}}</h1>
<p>Thank you for logging in.</p>
<p><a href="/accounts/logout/">Logout</a></p>
{% endblock %}
utworzyć plik o nazwie logged_out.html, zapisać go w folderze/templates rejestracji i wypełnić go z następujące: podejście
{% extends "base.html" %}
{% block title %}Logged Out{% endblock %}
{% block content %}
<h2>Logged out!</h2>
<p><a href="/accounts/login/">Log back in</a></p>
{% endblock %}
Dlaczego trzeba włamać Django rejestracji? Czy używasz django 1.5+? Jeśli tak, nie instaluj rejestracji z pipy, nie jest aktualizowana ze względu na kompatybilność. Zainstaluj z [repozytorium bitbucket] (https://bitbucket.org/ubernostrum/django-registration/overview). –
Dodano 'hg + https: // bitbucket.org/ubernostrum/django-rejestracja/downloads/django-registration-0.8.tar.gz' na' requirements.txt', spróbuję teraz. – boldnik
Nie, ta sama wersja jest w wersji pipy. Pobierz trunk zamiast tagu: 'hg + https: // bitbucket.org/ubernostrum/django-registration' –