Djangoのチュートリアルをやって、Mezzanineと並列のアプリとして組み込んでみた。入門編としてよく知られているものを2通り。デモページも実際に動いている。
Djangoのチュートリアルは大体がDjango 2.x系での実装を前提にコーディングされているが、Mezzanineと同じ環境で動かそうとするとDjango 1.x系の環境で動かすことになる。主な違いはurls.pyまわりで、importすべきライブラリと、使う関数がpath()かurl()なのかという点が異なる。次のようなコードで共通化した。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
from django.contrib import admin try: # Djando 2.x系 from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('blog.urls')), ] except ImportError: # Djando 1.11.x系 from django.conf.urls import include, url urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'', include('blog.urls')), ] |
url()を使う場合は正規表現の書き方がpath()とは異なるので注意が必要。
urls.py以外ではMezzanineのメインプロジェクトのsettings.pyにアプリ名を登録するくらいで、あとはチュートリアルのアプリ部分をフォルダーごとMezzanineプロジェクトの中に置けば動作した。
コメント