def test_form_to_generic_document(self): class CustomDocumentForm(DocumentForm): class Meta: document = ComplexObject TempDoc = create_temporary_document_class(ComplexObject) instance = TempDoc(_primitive_data={"field1": "hello"}) self.assertEqual(instance.field1, "hello") self.assertEqual(instance.dot_notation("field1"), "hello") form = CustomDocumentForm(instance=instance, data={"field1": "hello2"}) self.assertEqual(form.initial["field1"], "hello") self.assertTrue(form.is_valid(), str(form.errors)) instance = form.save() self.assertEqual(instance._primitive_data["field1"], "hello2") self.assertTrue(isinstance(instance, TempDoc)) complex_obj = instance.commit_changes() ComplexObject.objects.get(pk=complex_obj.pk) class CustomDocumentAddressForm(DocumentForm): class Meta: document = ComplexObject dotpath = "main_address" data = { "street_1": "10533 Mesane Rd", "city": "San Diego", "postal_code": "92126", "country": "US", "region": "CA", } form = CustomDocumentAddressForm(data=data, instance=instance) self.assertTrue(form.is_valid(), str(form.errors)) instance = form.save() self.assertEqual(instance._primitive_data["main_address"]["region"], "CA", str(instance._primitive_data)) self.assertTrue(isinstance(instance, TempDoc)) complex_obj = instance.commit_changes(instance=complex_obj) ComplexObject.objects.get(pk=complex_obj.pk) complex_obj.field1 = "hello3" complex_obj.save() instance.copy_from_instance(complex_obj) self.assertEqual(instance.field1, "hello3")
def temp_document(self): if not hasattr(self, '_temp_document'): self._temp_document = create_temporary_document_class(self.document) return self._temp_document
def temp_document(self): from dockit.models import create_temporary_document_class if not hasattr(self, '_temp_document'): self._temp_document = create_temporary_document_class(self.document) return self._temp_document
def temp_document(self): if not hasattr(self, '_temp_document'): self._temp_document = create_temporary_document_class( self.document) return self._temp_document