ゴミ Category を消す のは実施できましたので、
今度はゴミの Keyword が消せるのか試してみました。
0. 前提
以下の環境で実行しています。
-
OS
CentOS release 6.7 (Final) -
Python Version
Python 2.7.8 -
Package (必要そうなものだけ抜粋)
Django (1.10)
Mezzanine (4.2.0)
1. 参考
以下が参考になりました。
Keyword を消すための Admin は提供されておらず、管理画面上から変更できるようにするには、
自前で実装する必要があるようです。
2.管理メニューにキーワード編集を追加する
2-1. admin.py の記載先となる application を作成する。
mezzanine-project myproject
でプロジェクトを作成すると、
プロジェクトと同名のテンプレートディレクトリ ができますが、
ここに admin.py
を置いても認識されませんでしたので、
admin.py の置き場所とする application を作成します。
cd {mezzanine_project_root}
python2.7 manage.py startapp mezzanine_extentions
2-2. setting.py に mezzanine_extentions を追加
INSTALLED_APPS = (
"mezzanine_extentions",
...
}
2-3. admin.py を編集
以下の内容にしました。
- admin.py
from django.contrib import admin
from mezzanine.generic.models import Keyword
# Register your models here.
class KeywordAdmin(admin.ModelAdmin):
list_display = ('id', 'site', 'title', 'slug')
list_filter = ('site',)
search_fields = ('slug',)
admin.site.register(Keyword, KeywordAdmin)
2-4. settings.py の ADMIN_MENU_ORDER に generic.Keyword
を追加する
ADMIN_MENU_ORDER
に generic.Keyword
を追加します。
ADMIN_MENU_ORDER= (
('Content', ('pages.Page', 'blog.BlogPost', 'blog.BlogCategory', 'generic.Keyword', 'generic.ThreadedComment', ('Media Library', 'media-library'))),
('Site', ('sites.Site', 'redirects.Redirect', 'conf.Setting')),
('Users', ('auth.User', 'auth.Group')),
)
HTTP サーバを再起動すると以下の通り、キーワード編集ができるようになります。
3. python manage.py shell
から削除する
画面から消せるようになったので、あまり使用しないかもしれないですが、
console から、以下のようにキーワードを削除することができます。
- django shell を起動
python manage.py shell
from mezzanine.generic.models import Keyword k = Keyword.objects.get(title='<keyword>') k.delete()
4. python manage.py dbshell
から削除する
更にもっと、使用しないかもしれませんが、 SQL では以下の通り、削除が可能です。
- django dbshell を起動
python manage.py dbshell
DELETE FROM generic_keyword WHERE title = '<keyword>';
5. 補足 権限割り当て
コメントも同様だったのですが、
ユーザーに、編集権限を割り当てないと、ADMINメニューに表示されません。
管理者以外のユーザーが編集を行う場合は、権限の割り当てが必要になります。
Category とほぼほぼ同じような内容になりました。
以上です。
コメント