Пример #1
0
    def _get_fk_handler_class(self, model_field):
        related_field = model_field.field

        related_model = related_field.model
        if related_model._meta.auto_created:
            # NB: we avoid the "internal" table of ManyToManyFields
            # TODO: better way ? (problem with custom 'through' table ?)
            return None

        # NB: we use the django's migration tool to get a string pattern
        #     of the attribute "on_delete".
        delete_signature = serializer_factory(
            related_field.remote_field.on_delete).serialize()[0]

        for handler_pattern, handler_cls in self.fk_handler_classes.items():
            if fnmatch(delete_signature, handler_pattern):
                return handler_cls

        raise ValueError(
            gettext('The field "{}.{}" cannot be deleted because its '
                    '"on_delete" constraint is not managed. '
                    'Please contact your administrator.'.format(
                        related_field.model.__name__,
                        related_field.name,
                    )))
Пример #2
0
 def serialize(self):
     enum_class = self.value.__class__
     module = enum_class.__module__
     v_string, v_imports = migration_serializer.serializer_factory(
         self.value.value).serialize()
     imports = {'import %s' % module, *v_imports}
     return '%s.%s(%s)' % (module, enum_class.__qualname__,
                           v_string), imports
Пример #3
0
    def test_not_implemented_deconstructible(self):
        storage = dsn_configured_storage("UNDEFINED_DSN")

        arg_string, arg_imports = serializer_factory(storage).serialize()
        self.assertEqual(
            arg_string,
            "django_storage_url.base.dsn_configured_storage('UNDEFINED_DSN')",
        )
        self.assertEqual(arg_imports, {"import django_storage_url.base"})
Пример #4
0
    def test_defined_deconstructible(self):
        storage = dsn_configured_storage("STORAGE_DSN")

        arg_string, arg_imports = serializer_factory(storage).serialize()
        self.assertEqual(
            arg_string,
            "django_storage_url.base.dsn_configured_storage('STORAGE_DSN')",
        )
        self.assertEqual(arg_imports, {"import django_storage_url.base"})
Пример #5
0
 def serialize(cls, value):
     return serializer_factory(value).serialize()
Пример #6
0
 def serialize(self, value):
     return serializer_factory(value).serialize()[0]
Пример #7
0
 def serialize(self, value):
     return serializer_factory(value).serialize()[0]
Пример #8
0
 def serialize(cls, value):
     return serializer_factory(value).serialize()
Пример #9
0
 def serialize(self):
     return serializer_factory(self.value.value).serialize()