Tôi có câu hỏi về cách cập nhật hàng hiện tại trong cơ sở dữ liệu của mình khi một trong các trường là khóa chính của tôi. Tôi đang sử dụng ModelForm và Django-Piston - mục tiêu chính của tôi ở đây là có RESTful Post gửi đến webservice của tôi. Tôi có thể gửi bài viết ban đầu chính xác (nghĩa là giá trị khóa chính chưa tồn tại). Vấn đề là khi tôi muốn cập nhật một giá trị mà khóa chính đã tồn tại - khi tôi phát hành một f.is_valid() nó không thành công vì "UniqueIdentifier này đã tồn tại". Làm cách nào để tôi có thể thực hiện xác thực biểu mẫu bằng cách sử dụng ModelForms để cập nhật hàng hiện tại?Làm cách nào để cập nhật hàng đã tồn tại khi sử dụng ModelForms?
models.py của tôi:
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'}),
)
Nếu câu trả lời cung cấp cho bạn thông tin bạn cần, bạn nên chấp nhận thông tin đó (nhấp vào dấu kiểm). –