Django-fr

Forum

#1 22-11-2012 18:49:27

car00x
Membre
Inscription : 31-05-2012
Messages : 39

enregistrer les données d'un formulaire en bdb

Bonjour,
je voudrais enrégister les données de mon formulaires dans une base de donnée.
je fais le formulaire à partir de model, voici mon code:


class Eleve(models.Model):
    username = models.CharField(_('username'), max_length=30, unique=True, )
    first_name = models.CharField(_('first name'), max_length=30, blank=True)
    last_name = models.CharField(_('last name'), max_length=30, blank=True)
    email = models.EmailField(_('e-mail address'), blank=True)
    password = models.CharField(_('password'), max_length=128, )
    sex = models.CharField(max_length=10, choices=GENDER_CHOICES)
    geographie = models.CharField(max_length=42, choices=COUNTRY)
    town = models.CharField(max_length=42)
    Eleve.save()
    def __unicode__(self):   
        return self.username


dans le console j'ai cette erreur: Name 'Eleve' is not defined.

j'aimerais savoir comment je dois procéder pour enregistrer les données du formulaire dans la base de donée.

merci

Hors ligne

#2 23-11-2012 07:26:34

luc
Membre
Lieu : Loire (42)
Inscription : 19-02-2011
Messages : 15
Site Web

Re : enregistrer les données d'un formulaire en bdb

Bonjour

la ligne Eleve.save() cause le problème. Elle est inutile et peut être supprimée. L'enregistrement d'un élève se fera dans la vue.

luc

Hors ligne

#3 23-11-2012 16:24:33

car00x
Membre
Inscription : 31-05-2012
Messages : 39

Re : enregistrer les données d'un formulaire en bdb

ok merci voici le code de ma vue

from django.http import HttpResponse
from django.shortcuts import render_to_response, redirect
from django import forms
from models import Eleve
def index(request):
    return render_to_response('index.html')
class Eleve(forms.ModelForm):
    class Meta:
        model = Eleve
        widgets = {
            'password': forms.PasswordInput(),
        }
def clean_password(self):
        password = self.cleaned_data['password']
        length = len(password)
        if length < 8:
            raise forms.ValidationError("Password has to be at least 8 characters long.")
        return password
def account(request):
    if request.method == 'POST':  
        form_d = Eleve(request.POST) 
        if form_d.is_valid():
           username = form.cleaned_data['username']
           lastname = form.cleaned_data['firstname']
           firstname = form.cleaned_data['firstname']
           email = form.cleaned_data['email']
           password = form.cleaned_data['password']
           sex = form.cleaned_data['sex']
           geographie = form.cleaned_data['country']
           town = form.cleaned_data['town']
           form_d.save()
           return HttpResponseRedirect('success')
    else: 
        form_d = Eleve()
        return render_to_response('account.html', {'form_d' : form_d})

Hors ligne

#4 23-11-2012 16:30:57

car00x
Membre
Inscription : 31-05-2012
Messages : 39

Re : enregistrer les données d'un formulaire en bdb

ok merci voici le code de ma vue

from django.http import HttpResponse
from django.shortcuts import render_to_response, redirect
from django import forms
from models import Eleve
def index(request):
    return render_to_response('index.html')
class Eleve(forms.ModelForm):
    class Meta:
        model = Eleve
        widgets = {
            'password': forms.PasswordInput(),
        }
def clean_password(self):
        password = self.cleaned_data['password']
        length = len(password)
        if length < 8:
            raise forms.ValidationError("Password has to be at least 8 characters long.")
        return password
def account(request):
    if request.method == 'POST':  
        form_d = Eleve(request.POST) 
        if form_d.is_valid():
           username = form.cleaned_data['username']
           lastname = form.cleaned_data['firstname']
           firstname = form.cleaned_data['firstname']
           email = form.cleaned_data['email']
           password = form.cleaned_data['password']
           sex = form.cleaned_data['sex']
           geographie = form.cleaned_data['country']
           town = form.cleaned_data['town']
           form_d.save()
           return HttpResponseRedirect('success')
    else: 
        form_d = Eleve()
        return render_to_response('account.html', {'form_d' : form_d})

l'enregistrement des données ne se fait pas dans la base de donnée

Hors ligne

#5 01-12-2012 11:40:12

car00x
Membre
Inscription : 31-05-2012
Messages : 39

Re : enregistrer les données d'un formulaire en bdb

cè reglé
merci

Hors ligne

Pied de page des forums