Изменить слаг Django для существующего объекта? - PullRequest
0 голосов
/ 13 января 2012

Как изменить слизняк для существующего объекта?У меня есть два объекта с конфликтующими слизнями, и мне нужно изменить один, чтобы решить проблему.Есть ли способ сделать это в интерфейсе администратора?Я не вижу никого.

1 Ответ

2 голосов
/ 13 января 2012

Вы должны убедиться, что a) соответствующее приложение зарегистрировано для отображения в интерфейсе администратора, и b), slug установлен для включения.В admin.py соответствующего приложения необходимо убедиться, что slug содержится в атрибуте fields:

admin.py

class MyModelAdmin(admin.ModelAdmin):
    fields = ( ... , 'slug', ... )
admin.site.register(MyModel, MyModelAdmin)

кроме того, вам следует избегать ситуации, когда две записи имеют одинаковый слаг.Вы можете сделать это, добавив unique=True в поле модели.

models.py

class MyModel(models.Model):
    ...
    slug = models.CharField(max_length=128, unique=True)

Если есть проблемы с вышеперечисленным, вам придется вручную изменить один из слагов в БД или использовать оболочку:

> 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...