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


Python SlugField.set_attributes_from_name方法代码示例

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


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

示例1: test_primary_key

# 需要导入模块: from django.db.models.fields import SlugField [as 别名]
# 或者: from django.db.models.fields.SlugField import set_attributes_from_name [as 别名]
 def test_primary_key(self):
     """
     Tests altering of the primary key
     """
     # Create the table
     with connection.schema_editor() as editor:
         editor.create_model(Tag)
     # Ensure the table is there and has the right PK
     self.assertTrue(
         self.get_indexes(Tag._meta.db_table)['id']['primary_key'],
     )
     # Alter to change the PK
     new_field = SlugField(primary_key=True)
     new_field.set_attributes_from_name("slug")
     new_field.model = Tag
     with connection.schema_editor() as editor:
         editor.remove_field(Tag, Tag._meta.get_field_by_name("id")[0])
         editor.alter_field(
             Tag,
             Tag._meta.get_field_by_name("slug")[0],
             new_field,
         )
     # Ensure the PK changed
     self.assertNotIn(
         'id',
         self.get_indexes(Tag._meta.db_table),
     )
     self.assertTrue(
         self.get_indexes(Tag._meta.db_table)['slug']['primary_key'],
     )
开发者ID:DasAllFolks,项目名称:django,代码行数:32,代码来源:tests.py

示例2: test_unique_together

# 需要导入模块: from django.db.models.fields import SlugField [as 别名]
# 或者: from django.db.models.fields.SlugField import set_attributes_from_name [as 别名]
 def test_unique_together(self):
     """
     Tests removing and adding unique_together constraints on a model.
     """
     # Create the table
     with connection.schema_editor() as editor:
         editor.create_model(UniqueTest)
     # Ensure the fields are unique to begin with
     UniqueTest.objects.create(year=2012, slug="foo")
     UniqueTest.objects.create(year=2011, slug="foo")
     UniqueTest.objects.create(year=2011, slug="bar")
     self.assertRaises(IntegrityError, UniqueTest.objects.create, year=2012, slug="foo")
     UniqueTest.objects.all().delete()
     # Alter the model to it's non-unique-together companion
     with connection.schema_editor() as editor:
         editor.alter_unique_together(UniqueTest, UniqueTest._meta.unique_together, [])
     # Ensure the fields are no longer unique
     UniqueTest.objects.create(year=2012, slug="foo")
     UniqueTest.objects.create(year=2012, slug="foo")
     UniqueTest.objects.all().delete()
     # Alter it back
     new_new_field = SlugField(unique=True)
     new_new_field.set_attributes_from_name("slug")
     with connection.schema_editor() as editor:
         editor.alter_unique_together(UniqueTest, [], UniqueTest._meta.unique_together)
     # Ensure the fields are unique again
     UniqueTest.objects.create(year=2012, slug="foo")
     self.assertRaises(IntegrityError, UniqueTest.objects.create, year=2012, slug="foo")
     UniqueTest.objects.all().delete()
开发者ID:Wilfred,项目名称:django,代码行数:31,代码来源:tests.py

示例3: test_unique

# 需要导入模块: from django.db.models.fields import SlugField [as 别名]
# 或者: from django.db.models.fields.SlugField import set_attributes_from_name [as 别名]
 def test_unique(self):
     """
     Tests removing and adding unique constraints to a single column.
     """
     # Create the table
     with connection.schema_editor() as editor:
         editor.create_model(Tag)
     # Ensure the field is unique to begin with
     Tag.objects.create(title="foo", slug="foo")
     self.assertRaises(IntegrityError, Tag.objects.create, title="bar", slug="foo")
     Tag.objects.all().delete()
     # Alter the slug field to be non-unique
     new_field = SlugField(unique=False)
     new_field.set_attributes_from_name("slug")
     with connection.schema_editor() as editor:
         editor.alter_field(
             Tag,
             Tag._meta.get_field_by_name("slug")[0],
             new_field,
             strict=True,
         )
     # Ensure the field is no longer unique
     Tag.objects.create(title="foo", slug="foo")
     Tag.objects.create(title="bar", slug="foo")
     Tag.objects.all().delete()
     # Alter the slug field to be unique
     new_new_field = SlugField(unique=True)
     new_new_field.set_attributes_from_name("slug")
     with connection.schema_editor() as editor:
         editor.alter_field(
             Tag,
             new_field,
             new_new_field,
             strict=True,
         )
     # Ensure the field is unique again
     Tag.objects.create(title="foo", slug="foo")
     self.assertRaises(IntegrityError, Tag.objects.create, title="bar", slug="foo")
     Tag.objects.all().delete()
     # Rename the field
     new_field = SlugField(unique=False)
     new_field.set_attributes_from_name("slug2")
     with connection.schema_editor() as editor:
         editor.alter_field(
             Tag,
             Tag._meta.get_field_by_name("slug")[0],
             TagUniqueRename._meta.get_field_by_name("slug2")[0],
             strict=True,
         )
     # Ensure the field is still unique
     TagUniqueRename.objects.create(title="foo", slug2="foo")
     self.assertRaises(IntegrityError, TagUniqueRename.objects.create, title="bar", slug2="foo")
     Tag.objects.all().delete()
开发者ID:DasAllFolks,项目名称:django,代码行数:55,代码来源:tests.py

示例4: test_unique

# 需要导入模块: from django.db.models.fields import SlugField [as 别名]
# 或者: from django.db.models.fields.SlugField import set_attributes_from_name [as 别名]
    def test_unique(self):
        """
        Tests removing and adding unique constraints to a single column.
        """
        print('\n')
        # Create the table
        print('1. Create the table')
        with connection.schema_editor() as editor:
            editor.create_model(Tag)

        # Ensure the field is unique to begin with
        print('2. Ensure the field is unique to begin with')
        Tag.objects.create(title="foo", slug="foo")
        self.assertRaises(IntegrityError, Tag.objects.create, title="bar", slug="foo")
        Tag.objects.all().delete()

        # Alter the slug field to be non-unique
        print('3. Alter the slug field to be non-unique')
        new_field = SlugField(unique=False)
        new_field.set_attributes_from_name("slug")
        with connection.schema_editor() as editor:
            editor.alter_field(
                Tag,
                Tag._meta.get_field_by_name("slug")[0],
                new_field,
                strict=True,
            )

        # Ensure the field is no longer unique
        print('4. Ensure the field is no longer unique')
        Tag.objects.create(title="foo", slug="foo")
        Tag.objects.create(title="bar", slug="foo")
        Tag.objects.all().delete()

        # Alter the slug field to be unique
        print('5. Alter the slug field to be unique')
        new_new_field = SlugField(unique=True)
        new_new_field.set_attributes_from_name("slug")
        with connection.schema_editor() as editor:
            editor.alter_field(
                Tag,
                new_field,
                new_new_field,
                strict=True,
            )

        # Ensure the field is unique again
        print('6. Ensure the field is unique again')
        Tag.objects.create(title="foo", slug="foo")
        self.assertRaises(IntegrityError, Tag.objects.create, title="bar", slug="foo")
        Tag.objects.all().delete()

        # The code below fail...
        # Firebid 2.5.x does not allow rename a field with a unique constraint defined on it.
        # Thas is to preserve data integrity.
        # Cannot update index segment used by an Integrity Constraint', -607, 335544351
        return

        # Rename the field
        print('7. Rename the field')
        new_field = SlugField(unique=False)
        new_field.set_attributes_from_name("slug2")
        with connection.schema_editor() as editor:
            editor.alter_field(
                Tag,
                Tag._meta.get_field_by_name("slug")[0],
                TagUniqueRename._meta.get_field_by_name("slug2")[0],
                strict=True,
            )

        # Ensure the field is still unique
        print('8. Ensure the field is still unique')
        TagUniqueRename.objects.create(title="foo", slug2="foo")
        self.assertRaises(IntegrityError, TagUniqueRename.objects.create, title="bar", slug2="foo")
        Tag.objects.all().delete()
开发者ID:artyom-smirnov,项目名称:django-firebird,代码行数:77,代码来源:tests.py


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