I had a problem when I was trying to add / publish data in my models. this is what i did in my python manage.py shell:
>>> from booking.models import * >>> qa = Product.objects.get(id=5) >>> sd = Booking.objects.create( ... date_select = '2011-11-29', ... product_name = qa.name, ... quantity = 1, ... price = qa.price, ... totalcost = 20, ... first_name = 'lalala', ... last_name = 'sadsd', ... contact = '2321321', ... product = qa.id) Traceback (most recent call last): File "<console>", line 10, in <module> File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 138, in create return self.get_query_set().create(**kwargs) File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 358, in create obj = self.model(**kwargs) File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py", line 352, in __init__ setattr(self, field.name, rel_obj) File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/related.py", line 331, in __set__ self.field.name, self.field.rel.to._meta.object_name)) ValueError: Cannot assign "5": "Booking.product" must be a "Product" instance.
I donβt know why this is happening ... is this product = qa.id
not equal to Booking.product?
here is my model.py
from django.db import models
and my handlers.py
from django.utils.xmlutils import SimplerXMLGenerator from piston.handler import BaseHandler from booking.models import * from piston.utils import rc, require_mime, require_extended, validate class BookingHandler(BaseHandler): allowed_method = ('GET', 'POST', 'PUT', 'DELETE') fields = ('id', 'date_select', 'product_name', 'quantity', 'price','totalcost', 'first_name', 'last_name', 'contact', 'product') model = Booking def read(self, request, id): if not self.has_model(): return rc.NOT_IMPLEMENTED try: inst = self.model.objects.get(id=id) return inst except self.model.MultipleObjectsReturned: return rc.DUPLICATE_ENTRY except self.model.DoesNotExist: return rc.NOT_HERE def create(self, request, *args, **kwargs): if not self.has_model(): return rc.NOT_IMPLEMENTED attrs = self.flatten_dict(request.POST) if attrs.has_key('data'): ext_posted_data = SimplerXMLGenerator(request.POST.get('data')) attrs = self.flatten_dict(ext_posted_data) try: inst = self.model.objects.get(**attrs) return rc.DUPLICATE_ENTRY except self.model.DoesNotExist: inst = self.model(**attrs)
can someone give me a hand about my situation?
thanks in advance...