
良い伝統を続けたい:
Djangoプロジェクト
PR-Heroで使用されている成功したソリューションについて説明します。
私は皆に同じことを
して、彼らの経験を
共有することを勧めます:)私は
その理由を説明します。 私たちのチームでは、あるプロジェクトの成功したソリューションまたはアプリケーションはすべて、次のプロジェクトで必ず使用されていました。 プロジェクトは進化し、どんどん良くなりました。
しかし、部門内ではなく
、ロシアのジャンジャイストの
コミュニティ全体と経験を共有したらどうでしょうか?
中身は何ですか
私たちのプロジェクトは技術的に難しいと呼ばれていません。 実際、これは1つのサービスのオンラインストアであり、明らかに最も困難な部分はロボカッサを介した支払いです。
内部では、すべてがもう少し興味深いものです。
優れたオンラインストアと同様に、ビジネスプロセスを自動化します。 たとえば、各ステージに設定された時間を超えないようにします。そうしないと、プロジェクトマネージャーは怒ったロボ文字を受け取ります。
小さな例-アプリケーションの状態の可能な例:
STATUSES_WORKFLOW = {
'new' : [ 'owned' , 'cancelled' ],
'owned' : [ 'bullshit' , 'cancelled' , 'wait_payment' ],
'bullshit' : [],
'wait_payment' : [ 'unpayed' , 'cancelled' , 'write_release' ],
'unpayed' : [],
'write_release' : [ 'wait_approval' , 'cancelled' ,],
'wait_approval' : [ 'sending_release' , 'cancelled' ],
'sending_release' : [ 'feedback' , 'cancelled' ],
'feedback' : [ 'finished' , 'cancelled' ],
'finished' : [],
'cancelled' : [],
}
残念ながら、私たちはビジネスモデルのみを試みており、すべてが完全に自動化されているわけではありません。 したがって、今日は外側に注目します。 プロジェクトのいくつかの要件:
- サイト上のテキストを複数の非技術者にすばやく変更する機能。
- クライアントにとって最大の利便性。
- 多言語主義。
さて、そして約束どおり、私たちは前向きな経験に進みます。
dbtemplates
私はこのプロジェクトの発見の中でこの
アプリケーションを宝石と考えてい
ます :)
DBTemplatesは、
Djangoテンプレートをデータベースに保存および編集する最も単純な機能を提供し
ます 。
同時に、すばらしいHTMLエディター
CodeMirrorをサポートし、
django- reversionを使用して変更の全履歴を保存します。
次のようになります。

このシンプルなソリューションは、サイト上のテキストを変更するというニーズを完全に満たしました。 別のプロジェクトで、DjangoCMSを試してみましたが、それは地獄です。 これはユーザーに適さないと言いますか? たぶん、しかし、短い遠足の後の女の子PR-schikiは首尾よくサイトページを支配して、作成しました。
マイナーな修正がない場合:
- sync_templatesコマンドは、Unicodeで動作し、データベースと同期するときにファイルを自動的に作成するように修正されました。
- また、テンプレートを1時間に1回自動的にコミットする簡単なスクリプトが作成されました。
そして奇妙なことに、このシステムはプロジェクトに最適です。 ほとんどの場合、dbtemplatesを優先して、e-Legion.ruからDjangoCMSをスローします。

これまでのところ、メニューの編集と新しいページの作成という小さなことは1つも完了していませんが、
django-treemenusはこのタスクに完全に対応すると思います。 e-legionに実装した後、さらに詳しく説明します。
自動ログイントークン
私はこのアプリケーションをプロジェクトの一部として作成しましたが、小さく未完成です:)しかし、それは非常に便利です。
アイデアは簡単です。ユーザーが電子メールからプロジェクトに自動的にログインできるようにします。
解決策:modelkaとミドルウェアを作成し、
autotoken=ER2332FFF
パラメーターを任意のリンクに追加できます。ユーザーはサイトで自動的に認証されます。
http://pr-hero.ru/manage_request/15/?autologin_token=ER2332FFF
アプリケーションの使用は簡単です-ユーザーのトークンを生成し、レターに貼り付けます:
data[ 'autologin_token' ] = AutologinToken . objects . generate(target_user)
アプリケーションのソースコード (あまりscられないでください、コームする時間がありませんでした)
ジャンゴロボカッサ
アプリケーションの名前は、その目的を示しています。 ここで言うことはほとんどありませんが、
ありがとうございます 。 とても簡単だとは思いもしませんでしたが、30分でサービスを
ロボカッサに接続し
ました 。
Yandex Money、WebMoney、ターミナル、銀行カードでの支払いは、私たちと顧客にとって問題なく当座預金になります。
将来、エルバのような支払い画面用のアプリケーションを作成するアイデアがあります。 誰かが完成を教えてもらえますか?

ジャンゴロゼッタ
この
アプリケーションは、プロジェクトを外国語に翻訳する際に非常に貴重な支援を提供します。 GoozyとPR-Heroの2つのプロジェクトで既に正常にテストされています。
たとえば、Goozyはウクライナ語、クロアチア語、さらにはフィンランド語に翻訳されました。 私はpoファイルをメールで送信し、poeditへのリンクを提供し、それから長い間マージして、翻訳されていない部分を送り返し、途中でこのまたはそのフレーズの意味についてコメントを与えなければなりませんでした。
Rosettaは、
翻訳ファイルを編集するための
便利なWebベースのインターフェイスを提供し
ます 。 poファイルをコンパイルしてWebサーバーを再起動する簡単なスクリプトを追加した後。

このソリューションは完璧に機能します! ネイティブスピーカーは完全に
独立してポータルを
翻訳し 、すぐに結果を観察してエラーを修正します。
django-localeurl
そして、今日の最後の
django-localeurlアプリケーション。 それは簡単な問題を解決します-サイトの言語はリンクからのみ決定されます。 たとえば、pr-hero.ru / en / mediasまたはen.pr-hero.ru/mediasは、英語のサイトを一意に指します。
以前のプロジェクトでは、言語は自動的に決定され、Cookieに保存されていましたが、これは次の2つの理由から悪い判断です。
-検索エンジンは別の言語のコンテンツにアクセスできません。
-記事へのリンクを指定すると、不適切な言語設定を持つユーザーが404を受け取る可能性があります。
したがって、
URLが言語を一意に定義することを決定しました。 localeurlはこれに役立ち、リンクの言語の変更とページ上のリンクの変更の両方を担当します({%url%}をオーバーライドします)。
それだけです
結論を出す代わりに、コミュニティ内でプロジェクトを完了した後に経験を共有すれば、すべてのDjangoプロジェクトとアプリケーションがより良くなります。
私は
あなたのプロジェクトをすぐに内部から見ることを本当に望んでい
ます :)