Python 为数据库中的现有条目生成slug字段数据

Python 为数据库中的现有条目生成slug字段数据,python,django,slug,Python,Django,Slug,我将Django 1.4与South一起用于迁移。我刚刚在我的一个模型中添加了一个slug字段并进行了迁移。slug字段会自动为所有新对象填充,并且工作正常 我想知道,有没有办法强迫Django在迁移之前为我所有的现有数据创建slug字段项 *编辑 我正在用admin.py中的这一行填充我的slug字段 prepopulated_fields={“slug”:(“name”,“price”)}当我向现有表中添加slug字段时,我使用了一个类似于此的南方数据迁移: from django.temp

我将Django 1.4与South一起用于迁移。我刚刚在我的一个模型中添加了一个slug字段并进行了迁移。slug字段会自动为所有新对象填充,并且工作正常

我想知道,有没有办法强迫Django在迁移之前为我所有的现有数据创建slug字段项

*编辑 我正在用admin.py中的这一行填充我的slug字段


prepopulated_fields={“slug”:(“name”,“price”)}

当我向现有表中添加slug字段时,我使用了一个类似于此的南方数据迁移:

from django.template.defaultfilters import slugify

class Migration(DataMigration):

    def forwards(self, orm):
        for obj in orm.MyModel.objects.filter(slug__isnull=True):
            slug = slugify(obj.name)
            obj.slug = slug
            suffix = 2
            while orm.MyModel.objects.filter(slug=obj.slug).exists():
                obj.slug = "%s-%d" % (slug, suffix)
                suffix = suffix + 1
            obj.save()


    def backwards(self, orm):
        pass # no need to change anything

我运行了
manage.py datamigration
,然后将上述代码放入South在
/migrations/????.py
中自动生成的模板文件中。然后,我像往常一样运行结果迁移。