我目前正在研究Django项目。当我使用CURL发送GET请求时,它工作正常,但是在POST请求的情况下,它给了我500个内部错误。我认为它与csrf令牌有关,我不知道如何处理它或csrf将如何解决我的错误。
我还在settings.py中设置了DEBUG = False和ALLOWED_HOSTS = [' *'],但我也遇到了同样的错误:
以下是我的一些代码:
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'),
)
这是来自views的函数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)
这是我在终端中使用的命令:
curl -X POST http://127.0.0.1:8000/users/ -d&#39; {&#34;用户名&#34;:&#34; root&#34;,&#34;电子邮件&#34;:&#34; abc@gmail.com"}&#39; -H&#34; Content-Type:application / json&#34;
Django版本号:1.9
在POSTMAN中我收到错误:
{ &#34;用户名&#34;:[ &#34;此字段是必填字段。&#34; ] &#34;电子邮件&#34;:[ &#34;此字段是必填字段。&#34; ] }
答案 0 :(得分:0)
不应该是data=request.data
(小写data
)吗?
答案 1 :(得分:0)
实际上,数据不是像这样分配给帖子的吗?
STARTUPINFOA si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
char *cmd = strdup("c:\\windows\\notepad.exe \"c:\\path\\filename.txt\"");
CreateProcessA(0, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);
free(cmd);
CloseHandle(pi.hProcess);