title: How do I update an already existing row when using ModelForms?
body: <p>I have a question on how to update an existing row in my database when one of the fields is my primary key. I am using ModelForm and Django-Piston - my main goal here is to have RESTful Post send to my webservice. I am able to have initial Posts be sent correctly (i.e. that Primary key value doesn't exist yet). The problem is when I want to update a value where the Primary key already exists - when I issue a f.is_valid() it fails because "this UniqueIdentifier already exists". How can I do form validation using ModelForms to update an existing row?</p>
  
  <p>My models.py:</p>
  
  <pre><code>from django.db import models
  class DeviceModel(models.Model):
      uniqueIdentifier = models.CharField(primary_key=True, max_length=100)
      deviceToken = models.CharField(max_length=100)
  </code></pre>
  
  <p>forms.py</p>
  
  <pre><code>from django import forms
  from models import DeviceModel
  class DeviceModelForm(forms.ModelForm):
      class Meta:
          model = DeviceModel
  </code></pre>
  
  <p>handlers.py</p>
  
  <pre><code>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
  </code></pre>
  
  <p>urls.py</p>
  
  <pre><code>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'}),
  )
  </code></pre>