我们从Python开源项目中,提取了以下15个代码示例,用于说明如何使用django.db.migrations.RenameModel()。
def inject_rename_contenttypes_operations(plan=None, apps=global_apps, using=DEFAULT_DB_ALIAS, **kwargs): """ Insert a `RenameContentType` operation after every planned `RenameModel` operation. """ if plan is None: return # Determine whether or not the ContentType model is available. try: ContentType = apps.get_model('contenttypes', 'ContentType') except LookupError: available = False else: if not router.allow_migrate_model(using, ContentType): return available = True for migration, backward in plan: if ((migration.app_label, migration.name) == ('contenttypes', '0001_initial')): # There's no point in going forward if the initial contenttypes # migration is unapplied as the ContentType model will be # unavailable from this point. if backward: break else: available = True continue # The ContentType model is not available yet. if not available: continue inserts = [] for index, operation in enumerate(migration.operations): if isinstance(operation, migrations.RenameModel): operation = RenameContentType( migration.app_label, operation.old_name_lower, operation.new_name_lower ) inserts.append((index + 1, operation)) for inserted, (index, operation) in enumerate(inserts): migration.operations.insert(inserted + index, operation)
def test_rename_model(self): project_state = self.set_up_test_model() operation = migrations.RenameModel("Pony", "Horse") new_state = project_state.clone() operation.state_forwards('tests', new_state) self.assertTableExists('tests_pony') self.assertTableNotExists('tests_horse') with connection.schema_editor() as editor: operation.database_forwards('tests', editor, project_state, new_state) self.assertTableExists('tests_horse') self.assertTableNotExists('tests_pony') with connection.schema_editor() as editor: operation.database_backwards('tests', editor, new_state, project_state) self.assertTableExists('tests_pony') self.assertTableNotExists('tests_horse')
def reduce_model_rename_self(self, operation, other, in_between): """ Folds a model rename into another one """ if operation.new_name_lower == other.old_name_lower: return [ migrations.RenameModel( operation.old_name, other.new_name, ) ]