Windows 7でmod_wsgiを使用してApache2経由でPyjamasとDjangoを実行しています。これらの設定で問題が発生しているとは思われません。それが機能していないのは、パジャマが生成したフォームから情報をPOSTすることです。私のアプリケーションでパジャマが生成したフォームを使用しようとすると、403sが生成されます(「CSRF検証に失敗しました」というエラーページ)。パジャマ+ Django => CSRFの混乱、403エラー
CSRFとDjango、Django、Ajaxなどの外部の研究を多大に行ってきましたが、ここでCSRFとパジャマに関するすべての回答を読んでいます。このような状況で何をすべきかだけを知っている人には、私は質問の本質を打ち砕いたと思う。
どのようにして{% csrf_token %}
をパジャマが生成したフォームに入れますか?私のパジャマのページはPajamasの.py
ファイルから生成され、ハードコードされたものがいっぱいのフォルダが作成されているため、CSRFのトークンは永続的ではないと理解しているため、これは不可能なようです。どのように私は現在のCSRFトークンを既にコード化されたフォームに統合するのでしょうか?
詳細についてはお気軽にお問い合わせください。この問題は非常に難しいです。パジャマの統合に関する公開情報はありません& Djangoはこれについて考えています。 DjangoのCSRFを認識している唯一の解決策は、おそらくCSRF保護を無効にする必要があると言います(でも可能ですが、私の代わりにどのような保護を置くことができますか?いずれにしてもCSRF保護を無効にするという恐ろしいアイデア?
ありがとうございました!
コンパイルする前に、適切なJavascriptを
.py
Pajamasファイルに追加することを理解します。しかし、あなたが提供したリンクはjQuery固有のようだが、JavaScriptをほんの少ししか理解していない人(そしてjQueryの拡張子)として、どうすればjQueryに依存しないようにするのか分かりません...ちょうど適切なソリューションのように、jQueryに依存するのはその答えのコードです – hangtwenty私は自分自身のJavaScriptマスターではないので、ページにjQueryを入れたり、少なくとも非圧縮バージョンをダウンロードして「trim」関数を抽出したりする方が簡単です。文字列の始まりと終わりから空白を取り除くようなものは、おそらく些細なことでしょう。答えに必要な部分は 'function getCookie(name)'です。次に、 'getCookie( 'csrftoken')'を使ってクッキーデータを取得し、これを隠しフィールドとしてフォームに追加することができます(これは '{%csrf_token%}'テンプレートです)。 –
さて、チケットのように思えましたが、ちょうどDjangoに関連するPajamasページを合理的な方法で提供できるのであれば、私は確信していますが、DjangoのURLインターフェイスをハッキングしてPajamas正しく表示するには...あまりにも多くの不満と、このパジャマのことを続けるための十分な文書がありません。 Djangoと統合していないときは涼しいかもしれないようですが、その統合についての文書はあまり欠けています。私はjQueryに完全に切り替えるつもりです。あなたの時間をありがとう! – hangtwenty