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

标签 django unit-testing validation 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

这是我的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 = SupplierForm({'name': 'NewSupplier'}, instance=supplier)

关于django - ModelForm is_valid() 在单元测试期间始终返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5951132/

相关文章:

python - django.db.utils.DatabaseError

django - Azure 部署未在 repo 中获取 SSL 证书

python - 如何在django中存储以零开头的整数

python - Django 单元测试 Sekizai 和 django cms

json - 使用 JSON 的 Laravel 验证错误响应

python - 如何在模型表单验证中访问 id?

python - 如何将主键传递给 url 以编辑有关对象的信息?

c# - 在私有(private)委托(delegate)方法中测试异常

visual-studio - Chutzpah Visual Studio 测试运行器找不到 JS 引用

jquery - 摇动事件以显示必填字段的表单字段?