Skip to content

Instantly share code, notes, and snippets.

@siddartha
Created August 22, 2013 10:23
Show Gist options
  • Save siddartha/6305610 to your computer and use it in GitHub Desktop.
Save siddartha/6305610 to your computer and use it in GitHub Desktop.
# forms.py
from django import forms
from django.contrib.auth.models import User
class ConnexionForm(forms.Form):
username = forms.CharField(label="Nom d'utilisateur", max_length=30)
password = forms.CharField(label="Mot de passe", widget=forms.PasswordInput)
#view.py
#-*- coding: utf-8 -*-
from django.http import Http404
from django.shortcuts import render
from django import forms
from link.models import Ancre,Lien
def index(request):
liens = Lien.objects.all() # On sélectionne tous les liens.
return render(request, 'link/index.html', {'derniers_liens':liens})
def page(request, id_page):
page = Lien.objects.get(id=id_page)
liens = Lien.objects.filter(page=page.page)
return render(request, 'link/page.html', {'page':page, 'derniers_liens':liens})
def keyword(request, id_kws):
keyword = Ancre.objects.get(id=id_kws)
liens = Lien.objects.filter(ancre=keyword)
return render(request, 'link/keyword.html', {'keyword':keyword, 'derniers_liens':liens})
def connexion(request):
error = False
if request.method == "POST":
form = ConnexionForm(request.POST)
if form.is_valid():
username = form.cleaned_data["username"] # on récupère le nom d'utilisateur
password = form.cleaned_data["password"] # .. et le mot de passe
user = authenticate(username=username, password=password) # on vérifie si les données sont ok
if user: # si l'objet renvoyé n'est pas None
login(request, user) # on connecte l'utilisateur
else: # sinon on affiche une erreur
error = True
else:
form = ConnexionForm()
return render(request, 'link/connexion.html', locals())
# connexion.html
{% extends "base.html" %}
{% block title %}Se connecter{% endblock %}
{% block content %}
<h2>Se connecter</h2>
{% if error %}
<p><strong>Utilisateur inexistant ou mauvais mot de passe</strong></p>
{% endif %}
{% if user.is_authenticated %}
Vous êtes connecté {{ user.username }} !
{% else %}
<form method="post" action="/connexion/">
{% csrf_token %}
{{ form.as_ul }}
<input type="submit" value="Submit" />
</form>
{% endif %}
{% endblock %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment