0

次のページを読みました。

https://docs.djangoproject.com/en/1.2/topics/http/decorators/

基本的に、コントローラーには POST 要求のみを受け入れる関数があります。そして、そのページのドキュメントにより、それが可能になりました。ただし、ユーザーが GET や PUT などを送信すると、応答は文字通り何もないことに気付きました。一般的なエラーや 404 ページなどを送信するにはどうすればよいですか?

4

3 に答える 3

4

何も返されません。405メソッドが許可されていないHTTPステータスコードを返します。これは、要求されたメソッドが許可されていないことをクライアントに示します(名前が示すように)。

他のものを返すことに夢中になっている場合は、デコレータを使用しないでください。要求されたメソッドが許可されたメソッドのリストにあるかどうかをテストするだけです。ビューコードに以下を追加するだけで、各条件に対して必要なことを実行できます。

if request.method in ['GET', 'POST']:
    // allowed
else:
    // not allowed
于 2012-07-03T14:50:05.610 に答える
0

これを試してください =) 頑張ってください!

from django.http import HttpResponseNotAllowed

def my_view(request):
    if request.method != 'POST':
        return HttpResponseNotAllowed(permitted_methods=('POST',))
于 2012-07-03T14:53:12.103 に答える
0

そうだったかどうかは思い出せ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特定のコントローラーに?

于 2012-07-03T14:48:42.380 に答える