मेरे पास एक प्रश्न है कि मेरे डेटाबेस में मौजूदा पंक्ति को कैसे अपडेट किया जाए जब फ़ील्ड में से कोई मेरी प्राथमिक कुंजी है। मैं मॉडलफॉर्म और डीजेगो-पिस्टन का उपयोग कर रहा हूं - मेरा मुख्य लक्ष्य यहां है कि रीस्टफुल पोस्ट मेरे webservice को भेजना है। मैं प्रारंभिक पोस्ट सही ढंग से भेज सकता हूं (यानी कि प्राथमिक कुंजी मान अभी तक मौजूद नहीं है)। समस्या यह है कि जब मैं एक मान को अद्यतन करना चाहता हूं जहां प्राथमिक कुंजी पहले से मौजूद है - जब मैं f.is_valid() जारी करता हूं तो यह विफल हो जाता है क्योंकि "यह अद्वितीय पहचानकर्ता पहले से मौजूद है"। मौजूदा पंक्ति को अद्यतन करने के लिए मॉडलफॉर्म का उपयोग करके मैं फॉर्म सत्यापन कैसे कर सकता हूं?मॉडलफॉर्म का उपयोग करते समय मैं पहले से मौजूद पंक्ति को कैसे अपडेट करूं?
मेरे 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'}),
)
यदि कोई उत्तर आपको आवश्यक जानकारी देता है, तो आपको इसे स्वीकार करना चाहिए (चेकमार्क पर क्लिक करें)। –