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.

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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@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