python – 如何在使用ModelForms时更新现有的行?
发布时间:2020-05-25 06:17:26 所属栏目:Python 来源:互联网
导读:问候, 我有一个问题,如何更新我的数据库中的一个现有行,其中一个字段是我的主键.我正在使用ModelForm和Django-Piston – 我的主要目标是将RESTful Post发送到我的webservice.我能够正确发送初始帖子(即主键值不存在).问题是当我要更新主键已经存在的值 – 当
|
问候, 我有一个问题,如何更新我的数据库中的一个现有行,其中一个字段是我的主键.我正在使用ModelForm和Django-Piston – 我的主要目标是将RESTful Post发送到我的webservice.我能够正确发送初始帖子(即主键值不存在).问题是当我要更新主键已经存在的值 – 当我发出f.is_valid()它失败,因为“这个UniqueIdentifier已经存在”.如何使用ModelForms进行表单验证来更新现有行? 我的models.py: from django.db import models
class DeviceModel(models.Model):
uniqueIdentifier = models.CharField(primary_key=True,max_length=100)
deviceToken = models.CharField(max_length=100)
forms.py from django import forms
from models import DeviceModel
class DeviceModelForm(forms.ModelForm):
class Meta:
model = DeviceModel
handlers.py class DeviceHandler(BaseHandler):
allowed_methods = ('POST','GET','DELETE',)
def create(self,request):
f = DeviceModelForm(request.POST)
if f.is_valid():
new_object = f.save()
return new_object
return rc.BAD_REQUEST
urls.py from django.conf.urls.defaults import *
from piston.resource import Resource
from api.handlers import DeviceHandler
device_handler = Resource(DeviceHandler)
urlpatterns = patterns('',(r'^api/$',device_handler,{'emitter_format': 'json'}),)
解决方法django docs给出了一个简单的例子,说明如何创建一个表单来更改一个现有的[[entity]]:>>> article = Article.objects.get(pk=1) >>> form = ArticleForm(instance=article) 如果您似乎想使用相同的流程来插入新对象和更改现有对象,则必须根据查找主键成功(现有对象)还是失败(新对象)分别实例化表单! – ) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
