次のページを読みました。
https://docs.djangoproject.com/en/1.2/topics/http/decorators/
基本的に、コントローラーには POST 要求のみを受け入れる関数があります。そして、そのページのドキュメントにより、それが可能になりました。ただし、ユーザーが GET や PUT などを送信すると、応答は文字通り何もないことに気付きました。一般的なエラーや 404 ページなどを送信するにはどうすればよいですか?
次のページを読みました。
https://docs.djangoproject.com/en/1.2/topics/http/decorators/
基本的に、コントローラーには POST 要求のみを受け入れる関数があります。そして、そのページのドキュメントにより、それが可能になりました。ただし、ユーザーが GET や PUT などを送信すると、応答は文字通り何もないことに気付きました。一般的なエラーや 404 ページなどを送信するにはどうすればよいですか?
何も返されません。405メソッドが許可されていないHTTPステータスコードを返します。これは、要求されたメソッドが許可されていないことをクライアントに示します(名前が示すように)。
他のものを返すことに夢中になっている場合は、デコレータを使用しないでください。要求されたメソッドが許可されたメソッドのリストにあるかどうかをテストするだけです。ビューコードに以下を追加するだけで、各条件に対して必要なことを実行できます。
if request.method in ['GET', 'POST']:
// allowed
else:
// not allowed
これを試してください =) 頑張ってください!
from django.http import HttpResponseNotAllowed
def my_view(request):
if request.method != 'POST':
return HttpResponseNotAllowed(permitted_methods=('POST',))
そうだったかどうかは思い出せrequest.method
ませんし、現在 Django をどのマシンにもインストールして再確認していませんが、このようなものは機能する可能性があります。
@require_http_methods(["GET", "POST"])
def my_view(request):
if request.method == 'GET':
# return a 404 or something
# or
if request.method != 'POST':
# return a 404 or something
しかし、たとえば405 - Method not allowed
許可しただけの場合、一般的なリターンページを取得するべきではありません。POST
特定のコントローラーに?