如何更改现有对象的slug?我有两个冲突slu objects的对象,我需要更改一个来解决问题。有没有办法在管理界面中执行此操作?我没有看到一个。
答案 0 :(得分:2)
您需要确保a)相应的应用程序已注册显示在管理界面中,并且b),slug
已设置为包含在内。在相关应用的admin.py
中,您需要确保slug
属性中包含fields
:
<强> admin.py 强>
class MyModelAdmin(admin.ModelAdmin):
fields = ( ... , 'slug', ... )
admin.site.register(MyModel, MyModelAdmin)
此外,您应该尽量避免陷入两个记录具有相同slug的情况。您可以通过将unique=True
添加到模型字段来执行此操作。
<强> models.py 强>
class MyModel(models.Model):
...
slug = models.CharField(max_length=128, unique=True)
如果上述问题出现问题,您必须手动更改数据库中的一个slu or或使用shell:
> manage.py shell
> from myapp.models import MyModel
> obj = MyModel.objects.get(id=0) # or whatever the id is for the problematic obj
> obj.slug = "new-slug"
> obj.save()