过去两天我一直在尝试使用djangorestframework编写一个自定义的rest接口- Get和Post。Get工作没有任何问题。
但是POST不起作用。
以下是我所做的:编写了一个forms.py文件,内容如下
import logging
from django import forms
class AddUserLocationAndDetailsForm(forms.Form):
"""A simple form with some of the most important pygments settings.
The code to be highlighted can be specified either in a text field, or by URL.
We do some additional form validation to ensure clients see helpful error responses."""
user = forms.CharField(
label='User',
max_length=200)
fbemail = forms.CharField(
label='Facebook Email',
max_length=200)
编写相应的view.py文件如下:
import logging
from djangorestframework.views import View
from djangorestframework.permissions import IsAuthenticated
from django.core.urlresolvers import reverse
from djangorestframework.response import Response
from djangorestframework import status
from forms import AddUserLocationAndDetailsForm
class AddUserLocationAndDetailsView(View):
"""
This view adds details of a user.
This view also performs functionalities to update location of a user if the user already exists.
"""
form = AddUserLocationAndDetailsForm
def get(self, request):
return "you have reached get"
def post(self, request):
return Response(status.HTTP_201_CREATED)
在这样做之后,当我运行服务器时,我得到了输入两个字段的网页。但是每当我提交POST时,我都会得到错误“This field is required."。我不知道发生了什么。也不知道如何调试这个,因为它从来没有命中AddUserLocationAndDetailsView类中的“post”函数。我已经在示例中遵循了他们的做法:http://django-rest-framework.org/examples/views.html
但它根本不起作用。感谢任何帮助。
2条答案
按热度按时间64jmpszr1#
我期待进口:
代替:
不确定这是否有帮助....因为这会在runserver上给予错误或点击页面你的设置文件中有调试模式吗?
你能把你的URL文件也给我吗?
y53ybaqx2#
尝试创建一个类似“请求”或“任务”的模型,并使用CRUD请求管理此模型的对象,包括处理中的其他工作。这样您还可以受益于REST框架提供的权限/身份验证,历史数据