2009/1/15 Ian Kelly <ian.g.ke...@gmail.com>:
> On Thu, Jan 15, 2009 at 1:58 AM, Jan Bednařík <jan.bedna...@gmail.com> wrote:
>>
>> On Wed, Jan 14, 2009 at 6:51 PM, Sebastian Bauer <ad...@ugame.net.pl> wrote:
>>>
>>> Hi
>>>
>>> I think it's a bug, but maybe im wrong:
>>>
>>>
>>> print Categories.objects.count()
>>>  >>0
>>> new_obj = Categories.objects.create(name="test")
>>> instance_1  = Categories.objects.get(pk=new_obj.pk)
>>> instance_2 = Categories.objects.get(pk=new_obj.pk)
>>>
>>> instance_1.delete()
>>> print Kategorie.objects.count()
>>>  >>0
>>> instance_2.save()
>>> print Kategorie.objects.count()
>>>  >>1
>>>
>>> how orm can save second instance of the same row when its deleted?
>>>
>>> i have 2 options to solve this problem:
>>>
>>> 1. create method of Model instance to check if row exists and let users
>>> to handle it by own
>>> or
>>> 2. throw exception ex. models.DoesNotExist
>>>
>>> what you think about this problem?
>>
>> Hi,
>>
>> this is happening, because Django ORM is not working as what you
>> expect from ORM.
>>
>> In real ORM, this:
>>
>> instance_1 = Categories.objects.get(pk=new_obj.pk)
>> instance_2 = Categories.objects.get(pk=new_obj.pk)
>>
>> will make only one instance with two pointers on it.
>
> No, it's just the behavior of the save method.  You can perform the
> operations above with a single instance and still get the same result
> - the row is deleted and then reinserted.

That should not happen.

instance.delete()
instance.save()

should raise ObjectDoesNotExist exception. Any other behavior is bug.

Jan

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to