У меня вопрос о том, как обновлять существующую строку в моей базе данных, когда одним из полей является мой первичный ключ. Я использую ModelForm и Django-Piston - моя главная цель здесь - отправить RESTful Post на мой веб-сервис. Я могу правильно отправлять начальные сообщения (т.е. Что значение основного ключа еще не существует). Проблема заключается в том, когда я хочу обновить значение, когда ключ Primary уже существует - когда я выдаю f.is_valid(), он терпит неудачу, потому что "этот UniqueIdentifier уже существует". Как я могу выполнить проверку формы с помощью ModelForms для обновления существующей строки?
Мои модели .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'}),
)