您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

5b51 2022/1/14 8:22:21 python 字数 2204 阅读 514 来源 www.jb51.cc/python

问候, 我有一个问题,如何更新我的数据库中的一个现有行,其中一个字段是我的主键.我正在使用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 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'}),)
>>> article = Article.objects.get(pk=1)
>>> form = ArticleForm(instance=article)

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

总结

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


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶