Django-fr

Forum

#1 11-05-2015 18:28:04

cobra85
Membre
Inscription : 11-05-2015
Messages : 58

Probleme avec User et Foreignkey

Bonjour,

Certains vont ce dire "encore lui, ont va pas tout lui faire !!", ne vous inquiétez pas j'avance aussi de mon coté mais lentement. Si je poste, c'est que vous êtes ma dernière chance

J'ai un formulaire d'insertion et je voudrais l'id de l'utilisateur qui a rempli/valider le formulaire soi inserer dans la BDD pour ensuite interagir avec, pour cela j'ai:

models.py
class Formulaire(models.Model):
    depart=models.ForeignKey(Ville, related_name="depart")
    arriver=models.ForeignKey(Ville, related_name="arriver")
    date_creation=models.DateTimeField("Date de creation", auto_now_add=True)
    date=models.DateField()
    heure=models.TimeField()
    user=models.ForeignKey(User)
    tel=models.CharField(max_length=5)
    detail=models.TextField()
    code=models.CharField(max_length=10)
    vehicule=models.ForeignKey(vehicule, related_name="vehicule")

Mon fichier forms.py

class FormulaireForm(forms.ModelForm):
    class Meta:
        model = Formulaire
        fields=['tel', 'date', 'depart', 'arriver','heure', 'detail','vehicule']
        labels={'tel':'tel',
                'date':'date',
                'depart':'depart',
                'arriver':'arriver',
                'heure':'heure',
                'detail':'detail',
                'vehicule':'vehicule',
                }

et mon fichier views.py

@login_required
def offre(request):
    if request.method == 'POST':
        formulaire_form = FormulaireForm(request.POST)
 
        if formulaire_form.is_valid():
            formulaire=Formulaire(
                tel=formulaire_form.cleaned_data['tel'],
                depart=formulaire_form.cleaned_data['depart'],
                arriver=formulaire_form.cleaned_data['arriver'],
                date=formulaire_form.cleaned_data['date'],
                heure=formulaire_form.cleaned_data['heure'],
                user=request.user,
                detail=formulaire_form.cleaned_data['detail'],
            )
            print formulaire
            formulaire_form.save()
 
            code=aleatoire()
            Formulaire.objects.filter(detail=detail).update(code = code)
 
            return HttpResponseRedirect('/blabla/offre') # Redirect after POST
    else:
        formulaire_form = FormulaireForm()
    return render(request, 'blabla/offre.html', { 'formulaire_form': formulaire_form,})

Le souci vient de cette ligne là: user=request.user qui me retourne une erreur de type:

blabla_formulaire.user_id may not be NULL

Pourquoi ???

lorsque je fais un print user, dans la console, je recuperer le nom de l'utilisateur (c'est déjà pas mal)

Merci

Hors ligne

#2 13-05-2015 07:43:07

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : Probleme avec User et Foreignkey

Il faut que tu sauves formulaire et non formulaire_form

Hors ligne

#3 13-05-2015 08:53:03

cobra85
Membre
Inscription : 11-05-2015
Messages : 58

Re : Probleme avec User et Foreignkey

Bonjour,

En effet cela marche mieux. Merci beaucoup.

Hors ligne

Pied de page des forums