Opened 13 years ago
Closed 13 years ago
#19465 closed Bug (duplicate)
Virtual Base Classes Not Implemented
| Reported by: | steven_ganz | Owned by: | nobody |
|---|---|---|---|
| Component: | Uncategorized | Version: | 1.4 |
| Severity: | Normal | Keywords: | |
| 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 involving the standard "diamond" multiple inheritance hierarchy:
from django.db import models
class A(models.Model):
name = models.CharField(max_length=256)
class Meta:
abstract = True
class B(A):
class Meta:
abstract = True
class C(A):
class Meta:
abstract = True
class D(B, C):
pass
generates the sql:
BEGIN;
CREATE TABLE `teamBuilderWebVersion_d` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`name` varchar(256) NOT NULL,
`name` varchar(256) NOT NULL
)
;
COMMIT;
which triggers the error:
django.db.utils.DatabaseError: (1060, "Duplicate column name 'name'")
So it seems that although python considers there to be only one instance of a base class inherited twice, django considers there to be two.
Note:
See TracTickets
for help on using tickets.
This appears to be a more straightforward version of #15279 as that ticket demonstrated the same bug, but with related fields - your issue demonstrates it is with any field