#16356: Relationships in Django does not allow CASCADE delete
-------------------------------------+-------------------------------------
     Reporter:  eguevara2012@…       |                    Owner:  nobody
         Type:  Bug                  |                   Status:  closed
    Component:  Database layer       |                  Version:  1.3
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:  invalid
     Keywords:  relationship         |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by Tim Graham:

Old description:

> Hello!
> I've been through this ticket alert that Django relationships are wrong.
> A simple example:
> An owner has an address.
> A house has an address.
>
> The classes would be:
>
> class Owner(models.Model):
>     address = models.ForeignKey(Address)
>     #or better
>     # address = models.OneToOneField(Address)
>
> class House(models.Model):
>     address = models.ForeignKey(Address)
>     #or better
>     # address = models.OneToOneField(Address)
>
> class Address(models.Model):
>     street = models.CharField(max_length=100)
>     number = models.IntegerField(default=0)
>

> This is the correct mapping following the logic of object-orientation,
> but this mapping does not allow remove related objects by CASCADE.
> According to the Django doc, the mapping is inverse:
>
> class Owner(models.Model):
>     #other fields
>
> class House(models.Model):
>     #other fields
>
> class Adress(models.Model):
>     street = models.CharField(max_length=100)
>     number = models.IntegerField(default=0)
>     owner = models.ForeignKey(Owner)
>     house = models.ForeignKey(House)
>

> The big problem is that this mapping in the form of owner the address
> form is shown with a select of houses, and in the form of owner is shown
> a form address with a select of owners.
> Look, I want to register an owner and his address, this is end of the
> registration.
> After i want register a house, register your address and there can select
> the owner to associate home with owner.
>
> I urge to carefully read the Hibernate reference manual to understand how
> relationships should be made in Django:
>
> http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html
> #entity-mapping-association
>
> I would like to examine this problem because i can not remove an owner
> and remove the house and address by CASCADE, and remove a house and its
> address by CASCADE using my firts example for mapping class.
>
> Regards.

New description:

 Hello!
 I've been through this ticket alert that Django relationships are wrong.
 A simple example:
 An owner has an address.
 A house has an address.

 The classes would be:
 {{{
 class Owner(models.Model):
     address = models.ForeignKey(Address)
     #or better
     # address = models.OneToOneField(Address)

 class House(models.Model):
     address = models.ForeignKey(Address)
     #or better
     # address = models.OneToOneField(Address)

 class Address(models.Model):
     street = models.CharField(max_length=100)
     number = models.IntegerField(default=0)
 }}}

 This is the correct mapping following the logic of object-orientation, but
 this mapping does not allow remove related objects by CASCADE.
 According to the Django doc, the mapping is inverse:
 {{{
 class Owner(models.Model):
     #other fields

 class House(models.Model):
     #other fields

 class Adress(models.Model):
     street = models.CharField(max_length=100)
     number = models.IntegerField(default=0)
     owner = models.ForeignKey(Owner)
     house = models.ForeignKey(House)
 }}}

 The big problem is that this mapping in the form of owner the address form
 is shown with a select of houses, and in the form of owner is shown a form
 address with a select of owners.
 Look, I want to register an owner and his address, this is end of the
 registration.
 After i want register a house, register your address and there can select
 the owner to associate home with owner.

 I urge to carefully read the Hibernate reference manual to understand how
 relationships should be made in Django:

 http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html
 #entity-mapping-association

 I would like to examine this problem because i can not remove an owner and
 remove the house and address by CASCADE, and remove a house and its
 address by CASCADE using my firts example for mapping class.

 Regards.

--

--
Ticket URL: <https://code.djangoproject.com/ticket/16356#comment:2>
Django <https://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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/080.faf697f36e1e3e12bc7e9a290956dc90%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to