#16356: Relationships in Django does not allow CASCADE delete
----------------------------+----------------------------------------------
Reporter: eguevara2012@… | Owner: nobody
Type: Bug | Status: new
Milestone: | Component: Database layer (models, ORM)
Version: 1.3 | Severity: Normal
Keywords: relationship | Triage Stage: Unreviewed
Has patch: 0 | Easy pickings: 0
UI/UX: 0 |
----------------------------+----------------------------------------------
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>
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 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.