python-Django Rest Framework-使用model.ModelViewSet更新模型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-Django Rest Framework-使用model.ModelViewSet更新模型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1342字,纯文字阅读大概需要2分钟。
内容图文
![python-Django Rest Framework-使用model.ModelViewSet更新模型](/upload/InfoBanner/zyjiaocheng/667/c298a17f438548d9ab405156ae21ed55.jpg)
如何使用Django Rest Framework更新模型?我有以下模型/序列化器/视图定义:
foo / models.py
class FooBar (models.Model):
title = models.CharField(max_length=255,null=False)
def __unicode__(self):
return self.title
foo / serializers.py
from rest_framework import serializers
from foo.models import FooBar
class FooBarSerializer(serializers.ModelSerializer):
id = serializers.ReadOnlyField()
class Meta:
model = FooBar
fields = ('id','title')
read_only_fields = ['id']
foo / views.py
from rest_framework import viewsets
from foo.models import FooBar
from foo.serializers import FooBarSerializer
class FooViewSet(viewsets.ModelViewSet):
queryset = FooBar.objects.order_by('id')
serializer_class = FooBarSerializer
我在这个项目中使用了angular,可以说出一个新记录:
data = {‘title’:’New Foo Item’}
$http.post(`/ api / v1 / foo /`,data);
如何更新记录?以下代码将导致创建新记录.
data = {‘title’:’New Foo Item’,’id’:1}
$http.post(`/ api / v1 / foo /`,data)
我尝试使用$http.put和$http.patch,两者都导致405“方法不允许”错误.我也尝试过在URL中使用此对象ID,但没有运气:
$http.post(`/api/v1/foo/${data.id}/`, data );
解决方法:
答案是使用补丁.请小心,包括Django要求的结尾斜杠.我在第一次尝试打补丁时没有在结尾加上斜线,这导致了“ 405方法不允许”响应.
if ( data.id ) {
# update
$http.patch(`/api/v1/foo/${data.id}/`, data );
}
else {
# create
$http.post(`/api/v1/foo/`, data );
}
内容总结
以上是互联网集市为您收集整理的python-Django Rest Framework-使用model.ModelViewSet更新模型全部内容,希望文章能够帮你解决python-Django Rest Framework-使用model.ModelViewSet更新模型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。