【问题标题】:ModelForm is_valid() always return false during unit testingModelForm is_valid() 在单元测试期间总是返回 false
【发布时间】: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”?

标签: django unit-testing validation django-forms


【解决方案1】:

所有没有数据构造的表单都是“无效的”,因为它们没有要验证的东西 :-) 你需要为表单的构造函数提供有效的输入:

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

【讨论】:

猜你喜欢
  • 2020-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多