我使用Django 1.7和factory_boy創建一些模型。下面的代碼:Django 1.7 modelform_factory表單始終無效factory_boy創建的模型
在models.py:
class Address(models.Model):
first_line = models.CharField(max_length=50, blank=True)
second_line = models.CharField(max_length=50, blank=True)
city = models.CharField(max_length=30, blank=True)
state = models.CharField(max_length=2, blank=True)
zipcode = models.CharField(max_length=5, blank=True)
zipcode_ext = models.CharField(max_length=4, blank=True)
在factories.py相關的工廠(相同的目錄):給這個代碼在Django的殼
class AddressFactory(factory.django.DjangoModelFactory):
class Meta:
model = Address
first_line = "555 Main St."
second_line = "Unit 2"
city = "Chicago"
state = "IL"
zipcode = "60606"
zipcode_ext = "1234"
現在:
>>> from models import Address
>>> from django.forms.models import modelform_factory
>>> AddressForm = modelform_factory(Address)
>>> from factories import AddressFactory
>>> a = AddressFactory.create()
>>> af = AddressForm(instance = a)
>>> af.is_valid()
False
出於某種原因,對is_valid的調用似乎總是返回false,並且我找不到原因。在窗體上似乎沒有任何錯誤,而clean(),clean_fields()和validate_unique()都不會在實例上引發錯誤。
爲什麼is_valid總是返回false?
您可以打印執行is_valid後的實例和af表單嗎?嘗試使用FACTORY_FOR代替MetaClass ='your_appname.Address' –