ModelForm is_valid() 在单元测试期间总是返回 false
Posted
技术标签:
【中文标题】ModelForm is_valid() 在单元测试期间总是返回 false【英文标题】:ModelForm is_valid() always return false during unit testing 【发布时间】:2011-08-22 12:13:01 【问题描述】:我有一个简单的 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() 失败的原因是什么? 我使用 Django 1.3。
【问题讨论】:
您是否打印了“supplier_form.errors”? 【参考方案1】:所有没有数据构造的表单都是“无效的”,因为它们没有要验证的东西 :-) 你需要为表单的构造函数提供有效的输入:
supplier_form = SupplierForm('name': 'NewSupplier', instance=supplier)
【讨论】:
谢谢,这正是我需要的。 p.s.我刚刚在 *** 上发现了另一个具有相同问题的问题:***.com/questions/3869791/…以上是关于ModelForm is_valid() 在单元测试期间总是返回 false的主要内容,如果未能解决你的问题,请参考以下文章