本文整理汇总了Python中django.db.migrations.RemoveField方法的典型用法代码示例。如果您正苦于以下问题:Python migrations.RemoveField方法的具体用法?Python migrations.RemoveField怎么用?Python migrations.RemoveField使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类django.db.migrations
的用法示例。
在下文中一共展示了migrations.RemoveField方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_optimize_through_fields
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_optimize_through_fields(self):
"""
field-level through checking is working. This should manage to collapse
model Foo to nonexistence, and model Bar to a single IntegerField
called "width".
"""
self.assertOptimizesTo(
[
migrations.CreateModel("Foo", [("name", models.CharField(max_length=255))]),
migrations.CreateModel("Bar", [("size", models.IntegerField())]),
migrations.AddField("Foo", "age", models.IntegerField()),
migrations.AddField("Bar", "width", models.IntegerField()),
migrations.AlterField("Foo", "age", models.IntegerField()),
migrations.RenameField("Bar", "size", "dimensions"),
migrations.RemoveField("Foo", "age"),
migrations.RenameModel("Foo", "Phou"),
migrations.RemoveField("Bar", "dimensions"),
migrations.RenameModel("Phou", "Fou"),
migrations.DeleteModel("Fou"),
],
[
migrations.CreateModel("Bar", [("width", models.IntegerField())]),
],
)
示例2: test_remove_field_m2m
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_remove_field_m2m(self):
project_state = self.set_up_test_model("test_rmflmm", second_model=True)
project_state = self.apply_operations("test_rmflmm", project_state, operations=[
migrations.AddField("Pony", "stables", models.ManyToManyField("Stable", related_name="ponies"))
])
self.assertTableExists("test_rmflmm_pony_stables")
with_field_state = project_state.clone()
operations = [migrations.RemoveField("Pony", "stables")]
project_state = self.apply_operations("test_rmflmm", project_state, operations=operations)
self.assertTableNotExists("test_rmflmm_pony_stables")
# And test reversal
self.unapply_operations("test_rmflmm", with_field_state, operations=operations)
self.assertTableExists("test_rmflmm_pony_stables")
示例3: test_remove_field
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_remove_field(self):
"""
Tests the RemoveField operation.
"""
project_state = self.set_up_test_model("test_rmfl")
# Test the state alteration
operation = migrations.RemoveField("Pony", "pink")
self.assertEqual(operation.describe(), "Remove field pink from Pony")
new_state = project_state.clone()
operation.state_forwards("test_rmfl", new_state)
self.assertEqual(len(new_state.models["test_rmfl", "pony"].fields), 2)
# Test the database alteration
self.assertColumnExists("test_rmfl_pony", "pink")
with connection.schema_editor() as editor:
operation.database_forwards("test_rmfl", editor, project_state, new_state)
self.assertColumnNotExists("test_rmfl_pony", "pink")
# And test reversal
with connection.schema_editor() as editor:
operation.database_backwards("test_rmfl", editor, new_state, project_state)
self.assertColumnExists("test_rmfl_pony", "pink")
# And deconstruction
definition = operation.deconstruct()
self.assertEqual(definition[0], "RemoveField")
self.assertEqual(definition[1], [])
self.assertEqual(definition[2], {'model_name': "Pony", 'name': 'pink'})
示例4: test_remove_fk
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_remove_fk(self):
"""
Tests the RemoveField operation on a foreign key.
"""
project_state = self.set_up_test_model("test_rfk", related_model=True)
self.assertColumnExists("test_rfk_rider", "pony_id")
operation = migrations.RemoveField("Rider", "pony")
new_state = project_state.clone()
operation.state_forwards("test_rfk", new_state)
with connection.schema_editor() as editor:
operation.database_forwards("test_rfk", editor, project_state, new_state)
self.assertColumnNotExists("test_rfk_rider", "pony_id")
with connection.schema_editor() as editor:
operation.database_backwards("test_rfk", editor, new_state, project_state)
self.assertColumnExists("test_rfk_rider", "pony_id")
示例5: test_remove_field_m2m_with_through
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_remove_field_m2m_with_through(self):
project_state = self.set_up_test_model("test_rmflmmwt", second_model=True)
self.assertTableNotExists("test_rmflmmwt_ponystables")
project_state = self.apply_operations("test_rmflmmwt", project_state, operations=[
migrations.CreateModel("PonyStables", fields=[
("pony", models.ForeignKey('test_rmflmmwt.Pony', models.CASCADE)),
("stable", models.ForeignKey('test_rmflmmwt.Stable', models.CASCADE)),
]),
migrations.AddField(
"Pony", "stables",
models.ManyToManyField("Stable", related_name="ponies", through='test_rmflmmwt.PonyStables')
)
])
self.assertTableExists("test_rmflmmwt_ponystables")
operations = [migrations.RemoveField("Pony", "stables"), migrations.DeleteModel("PonyStables")]
self.apply_operations("test_rmflmmwt", project_state, operations=operations)
示例6: test_create_model_remove_field
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_create_model_remove_field(self):
"""
RemoveField should optimize into CreateModel.
"""
managers = [('objects', EmptyManager())]
self.assertOptimizesTo(
[
migrations.CreateModel(
name="Foo",
fields=[
("name", models.CharField(max_length=255)),
("age", models.IntegerField()),
],
options={'verbose_name': 'Foo'},
bases=(UnicodeModel,),
managers=managers,
),
migrations.RemoveField("Foo", "age"),
],
[
migrations.CreateModel(
name="Foo",
fields=[
("name", models.CharField(max_length=255)),
],
options={'verbose_name': 'Foo'},
bases=(UnicodeModel,),
managers=managers,
),
],
)
示例7: test_add_field_delete_field
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_add_field_delete_field(self):
"""
RemoveField should cancel AddField
"""
self.assertOptimizesTo(
[
migrations.AddField("Foo", "age", models.IntegerField()),
migrations.RemoveField("Foo", "age"),
],
[],
)
示例8: test_alter_field_delete_field
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_alter_field_delete_field(self):
"""
RemoveField should absorb AlterField
"""
self.assertOptimizesTo(
[
migrations.AlterField("Foo", "age", models.IntegerField()),
migrations.RemoveField("Foo", "age"),
],
[
migrations.RemoveField("Foo", "age"),
],
)
示例9: test_remove_geom_field
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_remove_geom_field(self):
"""
Test the RemoveField operation with a geometry-enabled column.
"""
self.alter_gis_model(migrations.RemoveField, 'Neighborhood', 'geom')
self.assertColumnNotExists('gis_neighborhood', 'geom')
# Test GeometryColumns when available
if HAS_GEOMETRY_COLUMNS:
self.assertGeometryColumnsCount(0)
示例10: test_remove_raster_field
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_remove_raster_field(self):
"""
Test the RemoveField operation with a raster-enabled column.
"""
self.alter_gis_model(migrations.RemoveField, 'Neighborhood', 'rast')
self.assertColumnNotExists('gis_neighborhood', 'rast')
示例11: remove_field
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def remove_field(field, filters: List[str]):
"""Removes the specified field from a model.
Arguments:
field:
The field to remove from a model.
filters:
List of strings to filter
SQL statements on.
"""
model = define_fake_model({"title": field})
state = migrations.state.ProjectState.from_apps(apps)
apply_migration(
[
migrations.CreateModel(
model.__name__, fields=[("title", field.clone())]
)
],
state,
)
with filtered_schema_editor(*filters) as calls:
apply_migration(
[migrations.RemoveField(model.__name__, "title")], state
)
yield calls
示例12: test_remove_index
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_remove_index(self):
"""
Test the RemoveIndex operation.
"""
project_state = self.set_up_test_model("test_rmin", multicol_index=True)
self.assertTableExists("test_rmin_pony")
self.assertIndexExists("test_rmin_pony", ["pink", "weight"])
operation = migrations.RemoveIndex("Pony", "pony_test_idx")
self.assertEqual(operation.describe(), "Remove index pony_test_idx from Pony")
new_state = project_state.clone()
operation.state_forwards("test_rmin", new_state)
# Test the state alteration
self.assertEqual(len(new_state.models["test_rmin", "pony"].options['indexes']), 0)
self.assertIndexExists("test_rmin_pony", ["pink", "weight"])
# Test the database alteration
with connection.schema_editor() as editor:
operation.database_forwards("test_rmin", editor, project_state, new_state)
self.assertIndexNotExists("test_rmin_pony", ["pink", "weight"])
# And test reversal
with connection.schema_editor() as editor:
operation.database_backwards("test_rmin", editor, new_state, project_state)
self.assertIndexExists("test_rmin_pony", ["pink", "weight"])
# And deconstruction
definition = operation.deconstruct()
self.assertEqual(definition[0], "RemoveIndex")
self.assertEqual(definition[1], [])
self.assertEqual(definition[2], {'model_name': "Pony", 'name': "pony_test_idx"})
# Also test a field dropped with index - sqlite remake issue
operations = [
migrations.RemoveIndex("Pony", "pony_test_idx"),
migrations.RemoveField("Pony", "pink"),
]
self.assertColumnExists("test_rmin_pony", "pink")
self.assertIndexExists("test_rmin_pony", ["pink", "weight"])
# Test database alteration
new_state = project_state.clone()
self.apply_operations('test_rmin', new_state, operations=operations)
self.assertColumnNotExists("test_rmin_pony", "pink")
self.assertIndexNotExists("test_rmin_pony", ["pink", "weight"])
# And test reversal
self.unapply_operations("test_rmin", project_state, operations=operations)
self.assertIndexExists("test_rmin_pony", ["pink", "weight"])
示例13: test_make_migration_field_operations_view_models
# 需要导入模块: from django.db import migrations [as 别名]
# 或者: from django.db.migrations import RemoveField [as 别名]
def test_make_migration_field_operations_view_models(
fake_app, define_view_model
):
"""Tests whether field operations against a (materialized) view are always
wrapped in the :see:ApplyState operation so that they don't actually get
applied to the database, yet Django applies to them to the project state.
This is important because you can't actually alter/add or delete
fields from a (materialized) view.
"""
underlying_model = get_fake_model(
{"first_name": models.TextField(), "last_name": models.TextField()},
meta_options=dict(app_label=fake_app.name),
)
model = define_view_model(
fields={"first_name": models.TextField()},
view_options=dict(query=underlying_model.objects.all()),
meta_options=dict(app_label=fake_app.name),
)
state_1 = ProjectState.from_apps(apps)
migration = make_migration(model._meta.app_label)
apply_migration(migration.operations, state_1)
# add a field to the materialized view
last_name_field = models.TextField(null=True)
last_name_field.contribute_to_class(model, "last_name")
migration = make_migration(model._meta.app_label, from_state=state_1)
assert len(migration.operations) == 1
assert isinstance(migration.operations[0], operations.ApplyState)
assert isinstance(migration.operations[0].state_operation, AddField)
# alter the field on the materialized view
state_2 = ProjectState.from_apps(apps)
last_name_field = models.TextField(null=True, blank=True)
last_name_field.contribute_to_class(model, "last_name")
migration = make_migration(model._meta.app_label, from_state=state_2)
assert len(migration.operations) == 1
assert isinstance(migration.operations[0], operations.ApplyState)
assert isinstance(migration.operations[0].state_operation, AlterField)
# remove the field from the materialized view
migration = make_migration(
model._meta.app_label,
from_state=ProjectState.from_apps(apps),
to_state=state_1,
)
assert isinstance(migration.operations[0], operations.ApplyState)
assert isinstance(migration.operations[0].state_operation, RemoveField)