Django の CMS で使ったことがないものを使って見ようと思いました。
Mezzanine - The Best Django CMS 以外だと、django-cms か、wagtail使われていそうです。
個人的に、wagtailほうが勢いがありそうに思われたので wagtailインストールしてみました。 インストールしてみた結果を記載します。

[TOC]


前提

以下の環境でインストールを実施しています。

  • OS

    % sw_vers
    ProductName:    Mac OS X
    ProductVersion: 10.13.1
    BuildVersion:   17B1003
    

  • Python の Version

    % python3 -V
    Python 3.6.2
    


インストールして、runserver で起動する

  • wagtail のインストール

    python3 -m pip install wagtail --user
    ----------------------------------------------------------
    Installing collected packages: wagtail
    Successfully installed wagtail-1.13.1
    ----------------------------------------------------------
    

  • wagtail プロジェクトの作成

    wagtail start mysite
    ----------------------------------------------------------
    Creating a Wagtail project called mysite
    Success! mysite has been created
    ----------------------------------------------------------
    

  • migration を実行

    cd mysite     
    python3 manage.py migrate     
    ----------------------------------------------------------
      Applying contenttypes.0001_initial... OK
      Applying auth.0001_initial... OK
      Applying admin.0001_initial... OK
      Applying admin.0002_logentry_remove_auto_add... OK
      Applying contenttypes.0002_remove_content_type_name... OK
      Applying auth.0002_alter_permission_name_max_length... OK
      Applying auth.0003_alter_user_email_max_length... OK
      Applying auth.0004_alter_user_username_opts... OK
      Applying auth.0005_alter_user_last_login_null... OK
      Applying auth.0006_require_contenttypes_0002... OK
      Applying auth.0007_alter_validators_add_error_messages... OK
      Applying auth.0008_alter_user_username_max_length... OK
      Applying wagtailcore.0001_squashed_0016_change_page_url_path_to_text_field... OK
      Applying wagtailcore.0017_change_edit_page_permission_description... OK
      Applying wagtailcore.0018_pagerevision_submitted_for_moderation_index... OK
      Applying wagtailcore.0019_verbose_names_cleanup... OK
      Applying wagtailcore.0020_add_index_on_page_first_published_at... OK
      Applying wagtailcore.0021_capitalizeverbose... OK
      Applying wagtailcore.0022_add_site_name... OK
      Applying wagtailcore.0023_alter_page_revision_on_delete_behaviour... OK
      Applying wagtailcore.0024_collection... OK
      Applying wagtailcore.0025_collection_initial_data... OK
      Applying wagtailcore.0026_group_collection_permission... OK
      Applying wagtailcore.0027_fix_collection_path_collation... OK
      Applying wagtailcore.0024_alter_page_content_type_on_delete_behaviour... OK
      Applying wagtailcore.0028_merge... OK
      Applying wagtailcore.0029_unicode_slugfield_dj19... OK
      Applying wagtailcore.0030_index_on_pagerevision_created_at... OK
      Applying wagtailcore.0031_add_page_view_restriction_types... OK
      Applying wagtailcore.0032_add_bulk_delete_page_permission... OK
      Applying wagtailcore.0033_remove_golive_expiry_help_text... OK
      Applying wagtailcore.0034_page_live_revision... OK
      Applying wagtailcore.0035_page_last_published_at... OK
      Applying wagtailcore.0036_populate_page_last_published_at... OK
      Applying wagtailcore.0037_set_page_owner_editable... OK
      Applying wagtailcore.0038_make_first_published_at_editable... OK
      Applying wagtailcore.0039_collectionviewrestriction... OK
      Applying wagtailcore.0040_page_draft_title... OK
      Applying home.0001_initial... OK
      Applying home.0002_create_homepage... OK
      Applying sessions.0001_initial... OK
      Applying taggit.0001_initial... OK
      Applying taggit.0002_auto_20150616_2121... OK
      Applying wagtailadmin.0001_create_admin_access_permissions... OK
      Applying wagtaildocs.0001_initial... OK
      Applying wagtaildocs.0002_initial_data... OK
      Applying wagtaildocs.0003_add_verbose_names... OK
      Applying wagtaildocs.0004_capitalizeverbose... OK
      Applying wagtaildocs.0005_document_collection... OK
      Applying wagtaildocs.0006_copy_document_permissions_to_collections... OK
      Applying wagtaildocs.0005_alter_uploaded_by_user_on_delete_action... OK
      Applying wagtaildocs.0007_merge... OK
      Applying wagtailembeds.0001_initial... OK
      Applying wagtailembeds.0002_add_verbose_names... OK
      Applying wagtailembeds.0003_capitalizeverbose... OK
      Applying wagtailforms.0001_initial... OK
      Applying wagtailforms.0002_add_verbose_names... OK
      Applying wagtailforms.0003_capitalizeverbose... OK
      Applying wagtailimages.0001_initial... OK
      Applying wagtailimages.0002_initial_data... OK
      Applying wagtailimages.0003_fix_focal_point_fields... OK
      Applying wagtailimages.0004_make_focal_point_key_not_nullable... OK
      Applying wagtailimages.0005_make_filter_spec_unique... OK
      Applying wagtailimages.0006_add_verbose_names... OK
      Applying wagtailimages.0007_image_file_size... OK
      Applying wagtailimages.0008_image_created_at_index... OK
      Applying wagtailimages.0009_capitalizeverbose... OK
      Applying wagtailimages.0010_change_on_delete_behaviour... OK
      Applying wagtailimages.0011_image_collection... OK
      Applying wagtailimages.0012_copy_image_permissions_to_collections... OK
      Applying wagtailimages.0013_make_rendition_upload_callable... OK
      Applying wagtailimages.0014_add_filter_spec_field... OK
      Applying wagtailimages.0015_fill_filter_spec_field... OK
      Applying wagtailimages.0016_deprecate_rendition_filter_relation... OK
      Applying wagtailimages.0017_reduce_focal_point_key_max_length... OK
      Applying wagtailimages.0018_remove_rendition_filter... OK
      Applying wagtailimages.0019_delete_filter... OK
      Applying wagtailredirects.0001_initial... OK
      Applying wagtailredirects.0002_add_verbose_names... OK
      Applying wagtailredirects.0003_make_site_field_editable... OK
      Applying wagtailredirects.0004_set_unique_on_path_and_site... OK
      Applying wagtailredirects.0005_capitalizeverbose... OK
      Applying wagtailsearch.0001_initial... OK
      Applying wagtailsearch.0002_add_verbose_names... OK
      Applying wagtailsearch.0003_remove_editors_pick... OK
      Applying wagtailusers.0001_initial... OK
      Applying wagtailusers.0002_add_verbose_name_on_userprofile... OK
      Applying wagtailusers.0003_add_verbose_names... OK
      Applying wagtailusers.0004_capitalizeverbose... OK
      Applying wagtailusers.0005_make_related_name_wagtail_specific... OK
      Applying wagtailusers.0006_userprofile_prefered_language... OK
    ----------------------------------------------------------
    
    結構な数のmigration が実行されます。

  • superuser を作成

    python3 manage.py createsuperuser
    

  • runserver でサーバーを起動

    python3 manage.py runserver
    

  • INDEXページ
    サーバー起動後、http://127.0.0.1:8000/アクセスすると以下の画面が表示されます。
    "INDEXページ"

  • ログインページ
    http://127.0.0.1:8000/admin/login/アクセスするとログイン画面が表示されます。
    "LOGINページ"


日本語化する

mysite/mysite/settings/base.py 編集して日本語化します。
このあたりは、Mezzanine の 手順と変わりはなく、LANGUAGE_CODE と、TIME_ZONE設定します。

  • base.py
    LANGUAGE_CODE = 'ja'
    
    TIME_ZONE = 'Asia/Tokyo' 
    

上記設定後、再起動して、http://127.0.0.1:8000/admin/login/アクセスすると、以下の通り、メニューが日本語で表示されます。
"LOGINページ 日本語"


ログイン画面のURLを変更する

デフォルトだと、/admin/login/ マッピングされています。
外部公開時は、あまりわかりやすい URL だと不正アクセスの原因になるので、変更します。
また、django の Admin の url も デフォルトでマッピングされていますので、これも変更します。

  • mysite/mysite/urls.py
    urlpatterns = [
        #url(r'^django-admin/', include(admin.site.urls)),
        url(r'^admin/django-admin/', include(admin.site.urls)),
        #url(r'^admin/', include(wagtailadmin_urls)),
        url(r'^admin/admin/', include(wagtailadmin_urls)),
    

wagtail プロジェクト のアプリケーション構成について

wagtail startプロジェクトを作成すると、以下の構成でアプリケーションが作成されます。

mysite
|
|------mysite
|------home 
|------search
mysite 配下には、設定ファイルと、規定ページテンプレートが格納されており、search検索画面のアプリケーションの雛形、homeフロントページのアプリケーション雛形になります。
雛形はページのタイトルくらいしか表示できないため、ここからModel や、テンプレートを編集してページを作るか、別途 plugin をインストールして、plugin ベースで Web ページを作成していくことになります。wagtail 自体が提供するのは、バックオフィスにあたるコンテンツ投稿機能、投稿のワークフローの機能提供が主のようです。
各種 plugin は springload/awesome-wagtail: A curated list of awesome packages, articles, and other cool resources from the Wagtail community.記載があり、Blog 用途の plugin もあるので、wagtail で Blog 構築するならここから、選んで インストールすることになるのかなと思いました。

以上です。

コメント