2011-05-10 8 views
10

Tengo un código Django simple.ModelForm is_valid() siempre devuelve falso durante la prueba de la unidad

no es mi modelo y la forma en models.py archivo:

from django.db import models 
from django.forms import ModelForm 

class Supplier(models.Model): 
    name = models.CharField(max_length=55) 
    comment = models.TextField(blank=True) 

class SupplierForm(ModelForm): 
    class Meta: 
     model = Supplier 

y no es mi test.py:

from django.test import TestCase 
from mysite.myapp.models import Supplier, SupplierForm 

class SupplierTest(TestCase): 
    def test_supplier(self): 
     supplier = Supplier(name="SomeSupplier") 
     supplier_form = SupplierForm(instance = supplier) 
     self.assertEquals(supplier_form.is_valid(), True) 

cuando comienzo a prueba a través de manage.py , is_valid() siempre devuelve False, pero espero True.

¿Cuáles son las razones del error is_valid() en este caso? Uso Django 1.3.

+1

¿Ha impreso "supplier_form.errors"? – programmersbook

+0

sí. no hay datos –

Respuesta

21

Todas las formas construidas sin los datos son "no válido" porque no tienen nada para validar :-) Es necesario suministrar una entrada válida para Constuctor del formulario:

supplier_form = SupplierForm({'name': 'NewSupplier'}, instance=supplier) 
+0

Gracias, esto es lo que necesito. PD. Acabo de encontrar otra pregunta sobre stackoverflow con el mismo problema: http://stackoverflow.com/questions/3869791/django-modelform-fails-validation-with-no-errors –

Cuestiones relacionadas