Mezzanine REST API を使ってみる | Monotalk
の動作確認中に、ゴミカテゴリを幾つか登録したのですが、
画面上から削除することができず、削除方法を調べたので、
調べた結果を記載します。
0. 前提
以下の環境で実行しています。
-
OS
CentOS release 6.7 (Final) -
Python Version
Python 2.7.8 -
Package (必要そうなものだけ抜粋)
Django (1.10)
Mezzanine (4.2.0)
1. 参考
以下、メーリングリストでの Q&A が参考になりました。
ADMIN メニューに追加する。
もしくは、python manage.py shell
で対象カテゴリを削除するような形になるようです。
2. ADMIN メニューに追加する
settings.py の ADMIN_MENU_ORDER
に blog.BlogCategory
を追加すると、
ADMIN メニューに表示されるようなので、試してみます。
初期状態だと、ADMIN_MENU_ORDER
はコメントアウトされています。
Configuration — Mezzanine 4.2.2 documentation
を見る限りデフォルトだと、設定値は以下、値になっています。1
[1] 私の初期インストールした Version の関係か、コメントアウトされた設定は、デフォルト設定と異なりました。最新をインストールしてプロジェクトを作成すれば、コメントアウト部はデフォルト設定が記載されているかと思います。
ADMIN_MENU_ORDER= (
('Content', ('pages.Page', 'blog.BlogPost', 'generic.ThreadedComment', ('Media Library', 'media-library'))),
('Site', ('sites.Site', 'redirects.Redirect', 'conf.Setting')),
('Users', ('auth.User', 'auth.Group')),
)
この設定に、blog.BlogCategory
を追加します。
ADMIN_MENU_ORDER= (
('Content', ('pages.Page', 'blog.BlogPost', 'blog.BlogCategory', '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.blog.models import BlogCategory c = BlogCategory.objects.get(title='<category_title>') c.delete()
4. python manage.py dbshell
から削除する
更にもっと、使用しないかもしれませんが、 SQL では以下の通り、削除が可能です。
- django dbshell を起動
python manage.py dbshell
DELETE FROM blog_blogcategory WHERE title = '<category_title>';
ADMINメニューから削除できるようにしておけばよいですかね。
そもそも間違って登録自体あまり発生しないので、使用頻度は少ないかもしれません。
以上です。
コメント