2010-05-10 5 views
1

Ayant un ModelFormSet construit avec modelformset_factory et utilisant un modèle avec un ForeignKey facultatif, comment puis-je faire des associations vides (null) pour valider sur ce formulaire?Validation Django Formset avec un champ ForeignKey en option

Voici un exemple de code:

### model 
class Prueba(models.Model): 
    cliente = models.ForeignKey(Cliente, null = True) 
    valor = models.CharField(max_length = 20) 

### view 

def test(request): 
    PruebaFormSet = modelformset_factory(model = Prueba, extra = 1) 
    if request.method == 'GET': 
     formset = PruebaFormSet() 
     return render_to_response('tpls/test.html', {'formset' : formset}, 
            context_instance = RequestContext(request)) 
    else: 
     formset = PruebaFormSet(request.POST) 
     # dumb tests, just to know if validating 
     if formset.is_valid(): 
      return HttpResponse('0') 
     else: 
      return HttpResponse('1') 

Dans mon modèle, je suis juste appeler la Cependant, la méthode de {{form.cliente}} qui rend le champ combo, je veux être en mesure de choisir une valeur vide (étiquetée "------"), car le FK est facultatif ... mais lorsque le formulaire est soumis, il n'est pas validé.

Est-ce un comportement normal? Comment puis-je faire ce champ pour passer la validation requise?

Répondre

5

Essayez d'ajouter à blank = True cliente:

cliente = models.ForeignKey(Cliente, null = True, blank = True) 

nulle est liée la base de données, est vide pour la validation front-end.

+0

Fonctionne comme un charme. Je vous remercie! –

+0

Pas de soucis mec. –

Questions connexes