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:
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 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")
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 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', }
Le souci vient de cette ligne là: user=request.user qui me retourne une erreur de type:
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,})
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
Partager