我正在使用 Django 1.4 和 South 进行迁移。我刚刚向我的一个模型添加了一个 slug 字段并进行了迁移。 slug 字段会自动填充所有新对象,并且运行良好。
我想知道,有什么方法可以强制 Django 在迁移之前为我的所有现有数据创建 slug 字段条目...
*编辑 我正在使用 admin.py 中的这一行填充我的 slug 字段
prepopulated_fields = {"slug": ("名称","价格")}
最佳答案
当我向现有表添加 slug 字段时,我使用了 South 数据迁移,如下所示:
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
关于python - 为数据库中现有条目生成 slug 字段数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13243625/