2015-01-10 5 views
2

Когда поле моей формы пусто, у меня есть эта ошибка:Джанго - IntegrityError - Не нулевое ограничение

IntegrityError в/надписи NOT NULL ограничение не удалось: le_site_inscrit.age

Моих моделей:

class Inscrit(models.Model): 
    user = models.OneToOneField(User) 
    age = models.IntegerField(max_length=2, null=True, default=None) 

Моя форма в forms.html:

class inscriptionForm(forms.Form): 
    mail = forms.EmailField(max_length=100) 
    firstname = forms.CharField() 
    username = forms.CharField() 
    age = forms.IntegerField(required=False) 
    mdp = forms.CharField(widget=forms.PasswordInput) 

Мои взгляды:

def inscription(request): 
    error = False 
    if request.method == "POST": 
     form = inscriptionForm(request.POST) 
     if form.is_valid(): 
      mail = form.cleaned_data["mail"] 
      mdp = form.cleaned_data["mdp"] 
      username = form.cleaned_data["username"] 
      userfirstname = form.cleaned_data["firstname"] 
      age = form.cleaned_data["age"] or None 
      u = User.objects.create_user(username,mail,mdp) 
      u.first_name = userfirstname 
      u.save() 
      inscrit = Inscrit() 
      inscrit.user = u 
      if age is not None : 
       inscrit.age = age 
      inscrit.save() 
      return redirect(reverse(home)) 
     else : 
      error = True 
    else : 
     form = inscriptionForm() 
    return render(request,"zouya/inscription.html",locals()) 

Благодаря

ответ

2

Добавить blank=True к вашему определению модели поля:

class Inscrit(models.Model): 
    user = models.OneToOneField(User) 
    age = models.IntegerField(max_length=2, null=True, blank=True, default=None)