Bonjour,
Tout d'abord je suis un débutant.
J'aimerai savoir comment autoriser l'insertion d'une NULL dans un champ CharField.
Dans mon exemple je dois pouvoir insérer un enregistrement en laissant le champ "nomfichier" vide.
Comment faire?
Voici ma classe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class Projet(models.Model): donnee = models.ForeignKey(Donnee) id_fedora = models.CharField(max_length=50, blank=True) code = models.CharField(max_length=50) label = models.CharField(max_length=250) datecreation = models.DateField('date published') nomfichier = models.CharField(max_length=250, null=True, blank=True) def __unicode__(self): return self.label
Voici ma vue pour l'insertion d'un nouveau record:
Et voici mon form:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 def detailneuf(request): if request.method == "POST": vl_monform = ProjetForm(request.POST) vl_monform.save() return redirect('/projets/forms/new/') else: vl_monform = ProjetForm() return render_to_response('projects/newprojet.html', {'pe_monform': vl_monform}, context_instance = RequestContext(request))
Lorsque j'essai d'insérer un record en laissant la colonne "nomfichier" vide, j'ai le message suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class ProjetForm(ModelForm): code = CharField(widget = TextInput(attrs = {'size': 20}), label = 'Project Code') label = CharField(widget = Textarea(attrs = {'cols': 25, 'rows': 10}), label = 'Project Label') nomfichier = CharField(widget = TextInput(attrs = {'size': 70}), label = 'File Name') datecreation = DateField(widget = CalendarWidgetJquery, label = 'Creation Date') class Meta: model = Projet fields = ('donnee', 'code', 'datecreation', 'label', 'nomfichier')
"The Projet could not be created because the data didn't validate", par contre si dans mon form je supprime la colonne "nomfichier" j'arrive à insérer mon record dans ma BD.
Je ne comprends rien :-(
Merci d'avance pour votre aide.
Partager