私はajaxリクエストでタグを動的に追加できるビューを持っています。それは次のようになります。なぜlogin_requiredデコレータは302ステータスコードを返しますか?
urlpatterns = patterns('',
url(r'^addtag/$',addtag, name='addtag'),
)
そして、私のテストはそれをやっている:
@require_POST
@login_required
def addtag(request):
"""
a view to create a new tag in the tag database
"""
some logic here
は、これは私のurl.pyのように見えるものである
def test_addtag(self):
url='^addtag/$'
response = self.client.post(url,{'addtag':'"new tag"'})
self.assertEqual(response.status_code,401)
私はに返されるステータスコードを予想しましたtestclientがログインしていないので、401である必要があります。最初のデコレータは、リクエストがポストかどうかを確認しています。そして、私は401を返すようにlogin_requiredデコレータを期待したが、それはしませんでした:
AssertionError: 302 != 401
まず私はlogin_requiredデコレータは、いくつかのログインページにリダイレクトされるだろうと思いました。私がsettings.LOGIN_REDIRECT_URL
を指定していないことを確認しました。では、この場合login_requiredは何をしていますか?
レスポンスのロケーションヘッダーを確認しましたか? – jpic
素晴らしいアイデア!いくつかの壁に頭を打つことができました...場所は:http:// testserver/accounts/login /?next =/addtag/' – marue