django rest框架无法POST数据

时间:2014-07-29 20:14:05

标签: django rest post frameworks submit

我用django rest框架实现了一个基本的rest api。它可以完美地使用可浏览的api或与请求进行通信。下一步是将数据提交给其余的api。

这是我到目前为止所做的。

settings.py

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.AllowAny',),
    'PAGINATE_BY': 10
}

[UPDATE:] models.py

class Request(models.Model):
    name = models.TextField()

    def save(self, *args, **kwargs):
        super(Request, self).save(*args, **kwargs) # Call the "real" save() method.

serializers.py

class RequestSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Request
        fields = ('id', 'name')

views.api

class RequestsViewSet(viewsets.ModelViewSet):
    queryset = Request.objects.all()
    serializer_class = RequestSerializer

使用可浏览的api,我看到这些是支持的选项:

Allow: GET, HEAD, OPTIONS

显然,POST(以及PUT)也不见了。

我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

通过将post方法添加到modelviewset(在视图中)来解决它:

def post(self, request, format=None):
    ...

感谢您的帮助!

答案 1 :(得分:0)

好吧,我认为你只需要在模型对象上调用save方法来保存数据库中的对象。

首先,将模型导入视图,在视图中实例化模型对象,然后在新创建的对象上调用save方法。如果您将模型连接到后端,则会保留您的更改。

models.py

class YourModel(models.Model):
   name = models.CharField()

views.py

from models import YourModel
def yourView(request):
   yourObject = YourModel(name='John') 
   yourObject.save()  
   ...

还查看模型here

的Django文档