Hi all, I tried my code on virtualenv with django 1.3 and this problem is solved, but I have to write this app for django 1.2 :/
I'm thinking that this problem is caused by relationship of the objects, but now I created a new object without 'use' field and immediately deleted it after the .save(). With my surprise all objects in this table was deleted :( In [7]: Test.objects.all() Out[7]: [<Test: template1>, <Test: host1>, <Test: host2>, <Test:host3>] In [8]: obj1 = Test(host_name="othertest") In [9]: obj1.save() In [10]: obj1.delete() In [11]: Test.objects.all() Out[11]: [] Can I avoid this problem ? Thank you in advance Dave On Thu, 1 Sep 2011 08:01:20 -0700 (PDT) davegarath <davegar...@gmail.com> wrote: > Hi all, > > I using django 1.2 > I have a problem with model and Foreign Key on self table. > > I try to explain the problem with an example: > > I have one table like this : > > class Test_obj ( models.Model ): > name = models.CharField(max_length=255, unique=True, null=True) > use = models.ForeignKey('self', to_field='name',null=True, > db_column='use') > > class Meta: > abstract = True > > > class Test ( Test_obj ): > host_name = models.CharField(max_length=255, > unique=True, null=True) > alias = models.CharField(max_length=255, > null=True) > > def __unicode__(self): > if self.name: > return self.name > else: > return self.host_name > > > Now, in shell, I create some objects and I delete a parent object > "template1" and django works as I'm expect emulating > on delete cascade : > > In [8]: template1 = Test(name='template1') > > In [9]: template1.save() > > In [10]: host1 = Test(host_name='host1') > > In [11]: host2 = Test(host_name='host2') > > In [12]: host3 = Test(host_name='host3') > > In [13]: host1.use = template1 > > In [14]: host2.use = template1 > > In [15]: host3.use = template1 > > In [16]: host1.save() > > In [17]: host2.save() > > In [18]: host3.save() > > In [19]: Test.objects.all() > Out[19]: [<Test: template1>, <Test: host1>, <Test: host2>, <Test: > host3>] > > In [20]: template1.delete() > > In [21]: Test.objects.all() > Out[21]: [] > > > But I don't understand why django do the same thing when I delete a > children : > > In [27]: Test.objects.all() > Out[27]: [<Test: host1>, <Test: host2>, <Test: host3>, <Test: > template1>] > > In [28]: hos1 = Test.objects.get(host_name='host1') > > In [29]: host1.delete() > > In [30]: Test.objects.all() > Out[30]: [] > > > Is this a django bug or I'm wrong something ? > > Thank you, > Dave -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.