ModelForm is_valid()在单元测试期间始终返回false

mt_*_*erg 10 django validation unit-testing django-forms

我有一个简单的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
Run Code Online (Sandbox Code Playgroud)

还有我的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)
Run Code Online (Sandbox Code Playgroud)

当我通过manage.py开始测试时,is_valid()总是返回False,但我期望True.

在这种情况下,失败的原因是什么?is_valid()?我使用Django 1.3.

cat*_*ran 21

所有没有数据构造的表单都是"无效的",因为它们无需验证:-)您需要为表单的构造提供有效的输入:

supplier_form = SupplierForm({'name': 'NewSupplier'}, instance=supplier)
Run Code Online (Sandbox Code Playgroud)