python – 如何在使用ModelForms时更新现有的行?

python – 如何在使用ModelForms时更新现有的行?,第1张

概述问候, 我有一个问题,如何更新我的数据库中的一个现有行,其中一个字段是我的主键.我正在使用ModelForm和Django-Piston – 我的主要目标是将RESTful Post发送到我的webservice.我能够正确发送初始帖子(即主键值不存在).问题是当我要更新主键已经存在的值 – 当我发出f.is_valid()它失败,因为“这个UniqueIdentifier已经存在”.如何使用Mo 问候,

我有一个问题,如何更新我的数据库中的一个现有行,其中一个字段是我的主键.我正在使用ModelForm和Django-Piston – 我的主要目标是将RESTful Post发送到我的webservice.我能够正确发送初始帖子(即主键值不存在).问题是当我要更新主键已经存在的值 – 当我发出f.is_valID()它失败,因为“这个UniqueIDentifIEr已经存在”.如何使用ModelForms进行表单验证来更新现有行?

我的models.py:

from django.db import modelsclass DeviceModel(models.Model):    uniqueIDentifIEr = models.CharFIEld(primary_key=True,max_length=100)    devicetoken = models.CharFIEld(max_length=100)

forms.py

from django import formsfrom models import DeviceModelclass 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 Resourcefrom API.handlers import DeviceHandlerdevice_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)

如果您似乎想使用相同的流程来插入新对象和更改现有对象,则必须根据查找主键成功(现有对象)还是失败(新对象)分别实例化表单! – )

总结

以上是内存溢出为你收集整理的python – 如何在使用ModelForms时更新现有的行?全部内容,希望文章能够帮你解决python – 如何在使用ModelForms时更新现有的行?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存