#9269: get_or_create having issues
---------------------------------------------------+------------------------
Reporter: [EMAIL PROTECTED] | Owner: nobody
Status: closed | Milestone: post-1.0
Component: Database layer (models, ORM) | Version: 1.0
Resolution: invalid | Keywords:
get_or_create
Stage: Accepted | Has_patch: 0
Needs_docs: 0 | Needs_tests: 0
Needs_better_patch: 0 |
---------------------------------------------------+------------------------
Changes (by badri):
* cc: [EMAIL PROTECTED] (added)
* status: new => closed
* resolution: => invalid
* stage: Unreviewed => Accepted
Comment:
p, created = Inventory.objects.get_or_create(product = pr, location = lo,
storage_type = storagetype)
executes a query which matches more than one object.
This raises an exception in django/db/models/query.py line 304..
you will either have to:
1.make your get_or_create query more specific by giving more parameters.
2.handle the exception. something like:
try:
p, created = Inventory.objects.get_or_create(product = pr, location =
lo, storage_type = storagetype)
except Inventory.MultipleObjectsReturned:
# do something here
for instance, I have reproduced the same error from one of your models:
>>> l1 = Location(name='foo1', description='bar')
>>> l2 = Location(name='foo2', description='bar')
>>> obj, created = Location.objects.get_or_create(description='bar')
>>> l1.save()
>>> l2.save()
>>> obj, created = Location.objects.get_or_create(description='bar')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/lib/python2.5/site-
packages/django/db/models/manager.py", line 96, in get_or_create
return self.get_query_set().get_or_create(**kwargs)
File "/usr/local/lib/python2.5/site-packages/django/db/models/query.py",
line 326, in get_or_create
return self.get(**kwargs), False
File "/usr/local/lib/python2.5/site-packages/django/db/models/query.py",
line 305, in get
% (self.model._meta.object_name, num, kwargs))
MultipleObjectsReturned: get() returned more than one Location -- it
returned 2! Lookup parameters were {'description': 'bar'}
--
Ticket URL: <http://code.djangoproject.com/ticket/9269#comment:5>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---