ModelForm is_valid() всегда возвращает false во время модульного тестирования

У меня есть простой код Django.

есть моя модель и форма в файле models.py:

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

и вот мой 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)

Когда я запускаю тест через manage.py, is_valid() всегда возвращает False, но я ожидаю True.

Каковы причины отказа is_valid() в этом случае? Я использую Джанго 1.3.


person mt_serg    schedule 10.05.2011    source источник
comment
вы печатали supplier_form.errors?   -  person programmersbook    schedule 10.05.2011


Ответы (1)


Все формы, созданные без данных, являются «недействительными», потому что им нечего проверять :-) Вам необходимо предоставить корректные данные для конструктора формы:

supplier_form = SupplierForm({'name': 'NewSupplier'}, instance=supplier)
person catavaran    schedule 10.05.2011
comment
Спасибо, это то, что мне нужно. p.s. Я только что нашел еще один вопрос о stackoverflow с той же проблемой: stackoverflow.com/questions/3869791/ - person mt_serg; 10.05.2011