Djangoのサイトを作ったことがあるのですが、クーレイドを飲んでしまったのでiPhone版を作りたいと思っています。よく考えた結果、次の 2 つのオプションを思いつきました。
- i.xxxx.com のようなまったく別のサイトを作成します。Django のサイト フレームワークを使用して、同じデータベースに結び付けます。
- ユーザー エージェントを読み取り、テンプレート ディレクトリを動的に変更するミドルウェアの時間を見つけます。
ただし、オプション 2 の方が望ましいと思います。主に、Django のドキュメントがその場で設定を変更することを推奨していないため、いくつかの留保があります。私がやりたいことをするスニペットを見つけました。私の主な問題は、それを可能な限りシームレスにすることです。自動でユーザーに透過的にしたいと思います。
他の誰かが同じ問題に遭遇しましたか? Django サイトの iPhone バージョンの作成にどのように取り組んだかについて、共有したい人はいますか?
アップデート
ミドルウェアとテンプレート呼び出しの微調整を組み合わせました。
ミドルウェアにはminidetectorを使用しました。大量のモバイル ユーザー エージェントを検出するので、気に入っています。ビューで request.mobile を確認するだけです。
テンプレート呼び出しの微調整:
def check_mobile(request, template_name):
if request.mobile:
return 'mobile-%s'%template_name
return template_name
これは、両方のバージョンがあることがわかっているすべてのビューに使用します。
TODO:
- check_mobile('template_name.html') を使用する必要がないように、render_to_response の拡張バージョンでrequest.mobileにアクセスする方法を理解してください。
- モバイル バージョンが存在しない場合は、以前のテンプレートを使用して通常のテンプレートに自動的にフォールバックします。