コード例 #1
0
    def test_save_modelform(self):
        mform1 = modelform_factory(model=Example, fields=['a', 'b'])({'a': 'a', 'b': 2})
        mform2 = modelform_factory(model=Example2, exclude=['d'])({'c': 'c'})

        instances = [mform1, mform2]
        form = CompositeModelForm(form_instances=instances)
        form.save()

        self.assertEquals(Example.objects.filter(a='a', b=2).count(), 1)
        self.assertEquals(Example2.objects.filter(c='c').count(), 1)
コード例 #2
0
    def test_save_rollback(self):
        mform1 = modelform_factory(model=Example, fields=['a', 'b'])({'a': 'a'})
        mform2 = modelform_factory(model=Example2, exclude=['d'])({'c': 'c'})

        instances = [mform1, mform2]
        form = CompositeModelForm(form_instances=instances)

        self.assertRaises(ValueError, lambda: form.save())
        self.assertEquals(Example.objects.count(), 0)
        self.assertEquals(Example2.objects.count(), 0)