現在私はDjangoプロジェクトに取り組んでいます。 CURLを使用してGETリクエストを送信しているときは正常に動作していますが、POSTリクエストの場合は500の内部エラーが発生しています。私はそれがcsrfトークンと関係があり、それをどうすればいいのか、あるいはcsrfが私のエラーをどのように解決するのか分かりません。DjangoのPOSTメソッドで500の内部サーバーエラーが発生しました
私もsettings.pyにDEBUG = FalseのとALLOWED_HOSTS = [ '*']を設定したが、その後も、私は同じエラーを取得しています:ここで
サーバーエラー(500)
は、いくつかの作品です私のコード:
urls.pyこれは、ビューからの関数である
from django.conf.urls import patterns, url
urlpatterns = patterns(
'project.views',
url(r'^users/$', 'userList', name='userList'),
url(r'^users/(?P<pk>[0-9]+)$', 'userDetail', name='userDetail'),
)
、PY
@api_view(['GET', 'POST'])
def userList(request):
if request.method == 'GET':
user = users.objects.all()
serializer = UsersSerializer(user, many=True)
return Response(serializer.data)
elif request.method == 'POST':
serializer = UsersSerializer(data=request.DATA)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(
serializer.errors, status=status.HTTP_400_BAD_REQUEST)
これは私がターミナルで使用していますコマンドです:
カール-X POST http://127.0.0.1:8000/users/ -d '{ "ユーザ名": "ルート"、 "電子メール": "[email protected]"}' -H "コンテンツタイプ:アプリケーション/ JSON":として1.9
がPOSTMANでは、私はエラーを取得しています:
{ "ユーザー名":
Djangoのバージョン番号[ "このフィールドは必須です。" ]、 "email":[ "このフィールドは必須です。" ] }
サーバーのログにアクセスできますか?トレースバックは何を言いますか? –
DEBUGをTrueに設定すると、完全なエラーが表示されます。それは何と言いますか? –
私はPOSTMANを使用したときにエラーが発生しました: { "詳細": "サポートされていないメディアタイプ\" text/plain; charset = UTF-8 \ "をリクエストしました。 } – neerav94