前書き
理由
ドキュメントは有るけど、ハマらないようにまとめました。
前提
Mac OS X / macOS
※Linux OSやWindowsの人は適宜読み替えてください。
Django Oscarとは?
Djangoで動かせるショッピングサイトです。
ドキュメント
インストール
前提
すでにDjango 1.9やPython 3がインストールされている。
virtualenv
などで入ってるとなお良い。
オープンソースなのでgit上にあるので以下のようにやると思いますが、違います。
Django自体のプロジェクトは自分で作成してOscor自体はモジュール的に使います。
git clone https://github.com/django-oscar/django-oscar
1. まず本体を入れます。
pip install django-oscar
2. ドキュメントにしれっと書かれていたこれらも入れておきます。
pip install django_compressor
pip install pysolr
django_compressorとは?
Oscorがサポートしているテンプレートエンジンです。
オプションなのでなくてもいいようですが、入れておきます。
django-widget-tweaks
もテンプレートエンジンなのですが、django-oscar
をpipに入れるときに勝手に入る模様・・。
pysolrとは?
Apache Solr(ソーラー)」(以下、Solr)というオープンソースの検索エンジンで、これをPythonで動かすものです。
3. Solrのインストールや起動
brew install solr
Solr起動の準備
Solrのログ用フォルダの作成
mkdir -p /usr/local/Cellar/solr/6.1.0/example/logs/
※6.1.0
の部分は今回インストールしたものによって違うので自分の環境に合わせてください。
solr start
で起動。以下のようなログが出ます。
$ solr start
Waiting up to 30 seconds to see Solr running on port 8983 [\]
Started Solr server on port 8983 (pid=40099). Happy searching!
4. Djangoプロジェクト作成
コマンドで生成します.frobshop
はプロジェクト名になるのでご自身の希望で変えましょう。
django-admin.py startproject frobshop
スーパーユーザーも作っておきましょう。
python manage.py createsuperuser
5. settings.py設定
今回はfrobshop
プロジェクトなのでパスはご自身環境に合わせて下さい。
※「追加」のところを参照に追加してください。
※もし、コメントアウトなどで日本語を含めたいときはコレを一番上に書いてください。
# -*- coding: utf-8 -*-
一番上の方に以下を追加location
を忘れないように!
import os
from oscar.defaults import * # 追加
# 追加
location = lambda x: os.path.join(
os.path.dirname(os.path.realpath(__file__)), x)
アプリケーション系の設定
SITE_ID = 1
を忘れるとあとでadminに入れなくなるので忘れ得ないように
from oscar import get_core_apps # 追加
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites', # 追加
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.flatpages',
'compressor', # 追加
'widget_tweaks', # 追加
] + get_core_apps() # 追加
SITE_ID = 1 # 追加
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'oscar.apps.basket.middleware.BasketMiddleware', # 追加
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', # 追加
]
テンプレート系
from oscar import OSCAR_MAIN_TEMPLATE_DIR # 追加
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [ # 追加
os.path.join(BASE_DIR, 'templates'),
OSCAR_MAIN_TEMPLATE_DIR
],
'APP_DIRS': True,
'OPTIONS': {
DATABASES
の項目の下の方に以下をまるごと追加
# 追加
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://127.0.0.1:8983/solr',
'INCLUDE_SPELLING': True,
},
}
一番下の方にSTATIC_URL
とSTATIC_ROOT
を。
STATIC_URL = '/static/'
# 追加
STATIC_URL = '/static/'
STATIC_ROOT = location('public/static')
6. urls.py設定
※もし、コメントアウトなどで日本語を含めたいときはコレを一番上に書いてください。
# -*- coding: utf-8 -*-
include
を追加します。url
はデフォルトで入ってます。
from django.conf.urls import include, url # 追加
urlpatterns = [
url(r'^i18n/', include('django.conf.urls.i18n')), # 追加
url(r'^admin/', admin.site.urls),
url(r'', include(application.urls)), # 追加
]
6. マイグレーションです。
python manage.py migrate
7. 起動
python manage.py runserver
http://localhost:8000/
にアクセスしましょう。
管理画面はhttp://localhost:8000/admin
ですが、
エラーが出るときはSITE_ID = 1
を忘れてますね。
何か質問があれば、書き込めば答えれるかもしれませんね。