【发布时间】:2010-12-19 07:49:13
【问题描述】:
当其中一个字段是我的主键时,我有一个关于如何更新数据库中现有行的问题。我正在使用 ModelForm 和 Django-Piston - 我的主要目标是让 RESTful Post 发送到我的网络服务。我能够正确发送初始帖子(即该主键值尚不存在)。问题是当我想更新主键已经存在的值时 - 当我发出 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'}),
)
【问题讨论】:
-
如果答案提供了您需要的信息,您应该接受它(点击复选标记)。
标签: python django modelform django-piston