使用Django Restframework自定义Rest的好例子

5ktev3wc  于 2023-04-07  发布在  Go
关注(0)|答案(2)|浏览(130)

过去两天我一直在尝试使用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
但它根本不起作用。感谢任何帮助。

64jmpszr

64jmpszr1#

我期待进口:

from <yourapp>.forms import AddUserLocationAndDetailsForm

代替:

from forms import AddUserLocationAndDetailsForm

不确定这是否有帮助....因为这会在runserver上给予错误或点击页面你的设置文件中有调试模式吗?
你能把你的URL文件也给我吗?

y53ybaqx

y53ybaqx2#

尝试创建一个类似“请求”或“任务”的模型,并使用CRUD请求管理此模型的对象,包括处理中的其他工作。这样您还可以受益于REST框架提供的权限/身份验证,历史数据

相关问题