Pb ForeignKey(User) et Forms
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:
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:
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:
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