我用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)也不见了。
我做错了什么?
谢谢!
答案 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文档