当前位置: 首页>>代码示例>>Python>>正文


Python state.ModelState方法代码示例

本文整理汇总了Python中django.db.migrations.state.ModelState方法的典型用法代码示例。如果您正苦于以下问题:Python state.ModelState方法的具体用法?Python state.ModelState怎么用?Python state.ModelState使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在django.db.migrations.state的用法示例。


在下文中一共展示了state.ModelState方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_rename_model_state_forwards

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def test_rename_model_state_forwards(self):
        """
        RenameModel operations shouldn't trigger the caching of rendered apps
        on state without prior apps.
        """
        state = ProjectState()
        state.add_model(ModelState('migrations', 'Foo', []))
        operation = migrations.RenameModel('Foo', 'Bar')
        operation.state_forwards('migrations', state)
        self.assertNotIn('apps', state.__dict__)
        self.assertNotIn(('migrations', 'foo'), state.models)
        self.assertIn(('migrations', 'bar'), state.models)
        # Now with apps cached.
        apps = state.apps
        operation = migrations.RenameModel('Bar', 'Foo')
        operation.state_forwards('migrations', state)
        self.assertIs(state.apps, apps)
        self.assertNotIn(('migrations', 'bar'), state.models)
        self.assertIn(('migrations', 'foo'), state.models) 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:21,代码来源:test_operations.py

示例2: test_identical_regex_doesnt_alter

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def test_identical_regex_doesnt_alter(self):
        from_state = ModelState(
            "testapp", "model", [("id", models.AutoField(primary_key=True, validators=[
                RegexValidator(
                    re.compile('^[-a-zA-Z0-9_]+\\Z'),
                    "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.",
                    'invalid'
                )
            ]))]
        )
        to_state = ModelState(
            "testapp", "model", [("id", models.AutoField(primary_key=True, validators=[validate_slug]))]
        )
        changes = self.get_changes([from_state], [to_state])
        # Right number/type of migrations?
        self.assertNumberMigrations(changes, "testapp", 0) 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:18,代码来源:test_autodetector.py

示例3: test_create_model_with_indexes

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def test_create_model_with_indexes(self):
        """Test creation of new model with indexes already defined."""
        author = ModelState('otherapp', 'Author', [
            ('id', models.AutoField(primary_key=True)),
            ('name', models.CharField(max_length=200)),
        ], {'indexes': [models.Index(fields=['name'], name='create_model_with_indexes_idx')]})
        changes = self.get_changes([], [author])
        added_index = models.Index(fields=['name'], name='create_model_with_indexes_idx')
        # Right number of migrations?
        self.assertEqual(len(changes['otherapp']), 1)
        # Right number of actions?
        migration = changes['otherapp'][0]
        self.assertEqual(len(migration.operations), 2)
        # Right actions order?
        self.assertOperationTypes(changes, 'otherapp', 0, ['CreateModel', 'AddIndex'])
        self.assertOperationAttributes(changes, 'otherapp', 0, 0, name='Author')
        self.assertOperationAttributes(changes, 'otherapp', 0, 1, model_name='author', index=added_index) 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:19,代码来源:test_autodetector.py

示例4: test_create_model_and_unique_together

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def test_create_model_and_unique_together(self):
        author = ModelState("otherapp", "Author", [
            ("id", models.AutoField(primary_key=True)),
            ("name", models.CharField(max_length=200)),
        ])
        book_with_author = ModelState("otherapp", "Book", [
            ("id", models.AutoField(primary_key=True)),
            ("author", models.ForeignKey("otherapp.Author", models.CASCADE)),
            ("title", models.CharField(max_length=200)),
        ], {
            "index_together": {("title", "author")},
            "unique_together": {("title", "author")},
        })
        changes = self.get_changes([self.book_with_no_author], [author, book_with_author])
        # Right number of migrations?
        self.assertEqual(len(changes['otherapp']), 1)
        # Right number of actions?
        migration = changes['otherapp'][0]
        self.assertEqual(len(migration.operations), 4)
        # Right actions order?
        self.assertOperationTypes(
            changes, 'otherapp', 0,
            ['CreateModel', 'AddField', 'AlterUniqueTogether', 'AlterIndexTogether']
        ) 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:26,代码来源:test_autodetector.py

示例5: test_deconstruct_type

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def test_deconstruct_type(self):
        """
        #22951 -- Uninstantiated classes with deconstruct are correctly returned
        by deep_deconstruct during serialization.
        """
        author = ModelState(
            "testapp",
            "Author",
            [
                ("id", models.AutoField(primary_key=True)),
                ("name", models.CharField(
                    max_length=200,
                    # IntegerField intentionally not instantiated.
                    default=models.IntegerField,
                ))
            ],
        )
        changes = self.get_changes([], [author])
        # Right number/type of migrations?
        self.assertNumberMigrations(changes, 'testapp', 1)
        self.assertOperationTypes(changes, 'testapp', 0, ["CreateModel"]) 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:23,代码来源:test_autodetector.py

示例6: test_multiple_bases

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def test_multiple_bases(self):
        """#23956 - Inheriting models doesn't move *_ptr fields into AddField operations."""
        A = ModelState("app", "A", [("a_id", models.AutoField(primary_key=True))])
        B = ModelState("app", "B", [("b_id", models.AutoField(primary_key=True))])
        C = ModelState("app", "C", [], bases=("app.A", "app.B"))
        D = ModelState("app", "D", [], bases=("app.A", "app.B"))
        E = ModelState("app", "E", [], bases=("app.A", "app.B"))
        changes = self.get_changes([], [A, B, C, D, E])
        # Right number/type of migrations?
        self.assertNumberMigrations(changes, "app", 1)
        self.assertOperationTypes(changes, "app", 0, [
            "CreateModel", "CreateModel", "CreateModel", "CreateModel", "CreateModel"
        ])
        self.assertOperationAttributes(changes, "app", 0, 0, name="A")
        self.assertOperationAttributes(changes, "app", 0, 1, name="B")
        self.assertOperationAttributes(changes, "app", 0, 2, name="C")
        self.assertOperationAttributes(changes, "app", 0, 3, name="D")
        self.assertOperationAttributes(changes, "app", 0, 4, name="E") 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:20,代码来源:test_autodetector.py

示例7: test_different_regex_does_alter

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def test_different_regex_does_alter(self):
        from_state = ModelState(
            "testapp", "model", [("id", models.AutoField(primary_key=True, validators=[
                RegexValidator(
                    re.compile('^[a-z]+\\Z', 32),
                    "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.",
                    'invalid'
                )
            ]))]
        )
        to_state = ModelState(
            "testapp", "model", [("id", models.AutoField(primary_key=True, validators=[validate_slug]))]
        )
        changes = self.get_changes([from_state], [to_state])
        self.assertNumberMigrations(changes, "testapp", 1)
        self.assertOperationTypes(changes, "testapp", 0, ["AlterField"]) 
开发者ID:nesdis,项目名称:djongo,代码行数:18,代码来源:test_autodetector.py

示例8: test_default_related_name_option

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def test_default_related_name_option(self):
        model_state = ModelState('app', 'model', [
            ('id', models.AutoField(primary_key=True)),
        ], options={'default_related_name': 'related_name'})
        changes = self.get_changes([], [model_state])
        self.assertNumberMigrations(changes, 'app', 1)
        self.assertOperationTypes(changes, 'app', 0, ['CreateModel'])
        self.assertOperationAttributes(
            changes, 'app', 0, 0, name='model',
            options={'default_related_name': 'related_name'},
        )
        altered_model_state = ModelState('app', 'Model', [
            ('id', models.AutoField(primary_key=True)),
        ])
        changes = self.get_changes([model_state], [altered_model_state])
        self.assertNumberMigrations(changes, 'app', 1)
        self.assertOperationTypes(changes, 'app', 0, ['AlterModelOptions'])
        self.assertOperationAttributes(changes, 'app', 0, 0, name='model', options={}) 
开发者ID:nesdis,项目名称:djongo,代码行数:20,代码来源:test_autodetector.py

示例9: test_create_model_with_check_constraint

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def test_create_model_with_check_constraint(self):
        """Test creation of new model with constraints already defined."""
        author = ModelState('otherapp', 'Author', [
            ('id', models.AutoField(primary_key=True)),
            ('name', models.CharField(max_length=200)),
        ], {'constraints': [models.CheckConstraint(check=models.Q(name__contains='Bob'), name='name_contains_bob')]})
        changes = self.get_changes([], [author])
        added_constraint = models.CheckConstraint(check=models.Q(name__contains='Bob'), name='name_contains_bob')
        # Right number of migrations?
        self.assertEqual(len(changes['otherapp']), 1)
        # Right number of actions?
        migration = changes['otherapp'][0]
        self.assertEqual(len(migration.operations), 2)
        # Right actions order?
        self.assertOperationTypes(changes, 'otherapp', 0, ['CreateModel', 'AddConstraint'])
        self.assertOperationAttributes(changes, 'otherapp', 0, 0, name='Author')
        self.assertOperationAttributes(changes, 'otherapp', 0, 1, model_name='author', constraint=added_constraint) 
开发者ID:nesdis,项目名称:djongo,代码行数:19,代码来源:test_autodetector.py

示例10: state_forwards

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def state_forwards(self, app_label, state):
        state.add_model(ModelState(
            app_label,
            self.name,
            list(self.fields),
            dict(self.options),
            tuple(self.bases),
            list(self.managers),
        )) 
开发者ID:lanbing510,项目名称:GTDWeb,代码行数:11,代码来源:models.py

示例11: test_rename_missing_field

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def test_rename_missing_field(self):
        state = ProjectState()
        state.add_model(ModelState('app', 'model', []))
        with self.assertRaisesMessage(FieldDoesNotExist, "app.model has no field named 'field'"):
            migrations.RenameField('model', 'field', 'new_field').state_forwards('app', state) 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:7,代码来源:test_operations.py

示例12: test_rename_model_with_fks_in_different_position

# 需要导入模块: from django.db.migrations import state [as 别名]
# 或者: from django.db.migrations.state import ModelState [as 别名]
def test_rename_model_with_fks_in_different_position(self):
        """
        #24537 - The order of fields in a model does not influence
        the RenameModel detection.
        """
        before = [
            ModelState("testapp", "EntityA", [
                ("id", models.AutoField(primary_key=True)),
            ]),
            ModelState("testapp", "EntityB", [
                ("id", models.AutoField(primary_key=True)),
                ("some_label", models.CharField(max_length=255)),
                ("entity_a", models.ForeignKey("testapp.EntityA", models.CASCADE)),
            ]),
        ]
        after = [
            ModelState("testapp", "EntityA", [
                ("id", models.AutoField(primary_key=True)),
            ]),
            ModelState("testapp", "RenamedEntityB", [
                ("id", models.AutoField(primary_key=True)),
                ("entity_a", models.ForeignKey("testapp.EntityA", models.CASCADE)),
                ("some_label", models.CharField(max_length=255)),
            ]),
        ]
        changes = self.get_changes(before, after, MigrationQuestioner({"ask_rename_model": True}))
        self.assertNumberMigrations(changes, "testapp", 1)
        self.assertOperationTypes(changes, "testapp", 0, ["RenameModel"])
        self.assertOperationAttributes(changes, "testapp", 0, 0, old_name="EntityB", new_name="RenamedEntityB") 
开发者ID:denisenkom,项目名称:django-sqlserver,代码行数:31,代码来源:test_autodetector.py


注:本文中的django.db.migrations.state.ModelState方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。