我有一個關於如何更新我的數據庫中的現有行時,其中一個字段是我的主鍵的問題。我使用ModelForm和Django-Piston - 我的主要目標是讓RESTful Post發送到我的web服務。我能夠正確發送初始郵件(即,主鍵值尚不存在)。問題是當我想更新主鍵已經存在的值時 - 當我發出f.is_valid()時,它失敗了,因爲「這個UniqueIdentifier已經存在」。我如何使用ModelForms進行表單驗證來更新現有的行?如何在使用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'}),
)
如果答案爲您提供了所需的信息,您應該接受它(單擊對號)。 – 2009-11-23 20:46:18