(self)
| 279 | self.assertFalse(f.is_valid()) |
| 280 | |
| 281 | def test_formfield_initial(self): |
| 282 | # If the model has default values for some fields, they are used as the |
| 283 | # formfield initial values. |
| 284 | class DefaultsForm(ModelForm): |
| 285 | class Meta: |
| 286 | model = Defaults |
| 287 | fields = "__all__" |
| 288 | |
| 289 | self.assertEqual(DefaultsForm().fields["name"].initial, "class default value") |
| 290 | self.assertEqual( |
| 291 | DefaultsForm().fields["def_date"].initial, datetime.date(1980, 1, 1) |
| 292 | ) |
| 293 | self.assertEqual(DefaultsForm().fields["value"].initial, 42) |
| 294 | r1 = DefaultsForm()["callable_default"].as_widget() |
| 295 | r2 = DefaultsForm()["callable_default"].as_widget() |
| 296 | self.assertNotEqual(r1, r2) |
| 297 | |
| 298 | # In a ModelForm that is passed an instance, the initial values come |
| 299 | # from the instance's values, not the model's defaults. |
| 300 | foo_instance = Defaults( |
| 301 | name="instance value", def_date=datetime.date(1969, 4, 4), value=12 |
| 302 | ) |
| 303 | instance_form = DefaultsForm(instance=foo_instance) |
| 304 | self.assertEqual(instance_form.initial["name"], "instance value") |
| 305 | self.assertEqual(instance_form.initial["def_date"], datetime.date(1969, 4, 4)) |
| 306 | self.assertEqual(instance_form.initial["value"], 12) |
| 307 | |
| 308 | from django.forms import CharField |
| 309 | |
| 310 | class ExcludingForm(ModelForm): |
| 311 | name = CharField(max_length=255) |
| 312 | |
| 313 | class Meta: |
| 314 | model = Defaults |
| 315 | exclude = ["name", "callable_default"] |
| 316 | |
| 317 | f = ExcludingForm( |
| 318 | {"name": "Hello", "value": 99, "def_date": datetime.date(1999, 3, 2)} |
| 319 | ) |
| 320 | self.assertTrue(f.is_valid()) |
| 321 | self.assertEqual(f.cleaned_data["name"], "Hello") |
| 322 | obj = f.save() |
| 323 | self.assertEqual(obj.name, "class default value") |
| 324 | self.assertEqual(obj.value, 99) |
| 325 | self.assertEqual(obj.def_date, datetime.date(1999, 3, 2)) |
| 326 | |
| 327 | |
| 328 | class RelatedModelFormTests(SimpleTestCase): |
nothing calls this directly
no test coverage detected