django-cmsをgrappelliで再生する方法を知っている人がいる場合は、ヒントを教えてください
3 に答える
さて、私はかなり壮大な冒険を経験しました。その話はあなたにいくらか役立つかもしれません。この冒険の終点は、django-cms2.1.3をdjango-filebrowser-no-grappelliと連携させることでした。。それは実際にはあなたが望むものの反対のように聞こえるかもしれませんが、私が本当に望んでいたのはdjango-cmsをfilebrowserで動作させることだったので、私はそこに行き着きました。grappelliがないと、標準のdjango-filebrowserは期待どおりに機能しません。しかし、grappelli django-cmsでは、期待どおりに機能しません。それで、シェイクスピアを引用するために、そこにこすりを置きます。django-cmsをfilebrowserで動作させることは、uploadify(filebrowserに付属)でファイルをアップロードしようとしたときに、ファイルダイアログでファイルを選択した後、何も起こらなかったという事実を除いて、比較的簡単でした。最終的に、これはjqueryライブラリが2回ロードされていたためであることがわかりました。1回はuploadifyで使用するfilebrowserによるもので、もう1回はdjango-cmsによるものです。したがって、このファイルの2行目をコメントアウトすることによって:
サイトパッケージdir/cms / templates / cms / toolbar / toolbar.html
jquery.min.jsをロードし、uploadifyは期待どおりに機能しました。Soooo ... django-cmsをgrappelliで動作させて、filebrowserを使用できるようにしたい場合は、上記が役立つ場合があります。これが私の設定ファイルです。
私の解決策は、2つのサブドメイン「www」と「cms」を実装することです。各サブドメインでは、Djangoサイトの個別のインスタンスが異なるSTATIC_ROOTと変更されたINSTALLED_APPSで実行されています。grappelliは「www」サブドメインで実行されます。'cms'サブドメインでは実行されていないため、そこでdjango-cmsを使用できます。
サブドメインを設定します。
cms.example.com
このサブドメインを提供するようにWebサーバーを変更します。メインのdjangoサイトと同じ設定を使用しますが、別のスクリプトハンドラーをポイントします。たとえば、wsgiを使用している場合は、サーバーに実行を指示します
wsgi_cms.py
cp wsgi.py wsgi_cms.py
。行を編集wsgi_cms.py
および変更しますos.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
にos.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings_cms")
settings_cms.py
:
:
from settings import *
INSTALLED_APPS.remove('grappelli.dashboard')
INSTALLED_APPS.remove('grappelli')
STATIC_ROOT = os.path.join('/what/ever/static_cms/')
STATIC_URL = '/static_cms/'
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/`
変更
settings.py
:INSTALLED_APPS
タプルからリストに変更Webサーバーを再起動します
./manage.py collectstatic --settings=myproject.settings_cms
通常のサイトは通常どおり続行されます。grappelliを無効にしてdjango-cmsページを編集するには、http: //cms.example.com/admin/cms/page/にアクセスしてください。
私はかつて、grappelliをサポートするdjango-cmsフォークをgithubで作成しました。これは少し時代遅れですが、開始するのに役立つか、おそらく貢献したいと思うでしょう。