3

私の1.2.3djangoサイトは使用してcontrib.authおり、私の目標はwkhtmltopdfコマンドラインを使用してログイン専用ページを印刷することです。wkhtmlはこの状況を処理できます。

そこで、 curlを使用してログインをテストし、それが可能であることを確認しました
。問題は、常に403 CSRF(またはCookie)保護エラーが発生することです。
2番目のログインビューでCSRFを無効にしようとしました:

from django.views.decorators.csrf import csrf_exempt
from django.contrib.auth.views import login

@csrf_exempt
def fakelogin(request, template_name='registration/login.html'):
    return login(request, template_name)

この新しいビューは期待どおりに機能します。次に、ここで述べたように:

curl -c cookies.txt http://dev.local:8000/fakelogin/
curl -c cookies.txt -d login.txt http://dev.local:8000/fakelogin/

login.txtに次のものが含まれていますusername=Bob&password=secret&next=/page_to_print/id/

しかし、403 CSRFエラーは引き続き表示されます(そして、それが彼の時点でCSRFまたはセッションCookieに関連しているかどうかはわかりません...)

4

1 に答える 1

3

CSRFを無効にするには、settings.pyファイルでCSRFMiddleWareを削除するだけです。ただし、テスト後に元に戻すことを忘れないでください。

フォームの送信、リンクの解析、Cookie、リダイレクトなどを処理するため、将来的にはツイルのようなものを使用してページをより簡単にテストすることをお勧めします。

于 2011-02-07T13:29:55.890 に答える