Ho una domanda su come aggiornare una riga esistente nel mio database quando uno dei campi è la mia chiave primaria. Sto usando ModelForm e Django-Piston: il mio obiettivo principale è quello di inviare RESTful Post al mio webservice. Sono in grado di inviare Post iniziali correttamente (ovvero che il valore della chiave primaria non esiste ancora). Il problema è quando voglio aggiornare un valore in cui la chiave primaria esiste già - quando emetto un f.is_valid() fallisce perché "questo UniqueIdentifier esiste già". Come posso fare la convalida del modulo usando ModelForms per aggiornare una riga esistente?Come aggiornare una riga già esistente quando si utilizza ModelForms?
mio 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'}),
)
Se una risposta ti ha fornito le informazioni necessarie, devi accettarlo (fai clic sul segno di spunta). –