#258 closed defect (invalid)
Cannot create many-many relationships within the same table
| Reported by: | Owned by: | Adrian Holovaty | |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | |
| Severity: | major | Keywords: | sql ForeignKey | 
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no | 
| Needs tests: | no | Patch needs improvement: | no | 
| Easy pickings: | no | UI/UX: | no | 
Description
This model fails:
from django.core import meta # Create your models here. class Object(meta.Model): fields = ( meta.CharField('title', maxlength=50), ) class Relate(meta.Model): fields = ( meta.ForeignKey(Object, rel_name='parent'), meta.ForeignKey(Object, rel_name='child'), )
When you generate SQL for it, two columns with the name 'object_id' are placed in the 'relate' table.  I was expecting columns with names 'parent_id' and 'child_id'.
Change History (2)
comment:1 by , 20 years ago
| Resolution: | → invalid | 
|---|---|
| Status: | new → closed | 
comment:2 by , 20 years ago
OK, this works, thanks :).
Any chance you could update the documentation to include it?  At the moment, only ManyToManyField() shows the name option.
  Note:
 See   TracTickets
 for help on using tickets.
    
Your foreign keys need
nameattributes; it uses the name of the related-to object by default, so there's a clash (rel_nameis used for the names of the helper methods --get_parent,get_child, etc.)