#15123 closed (invalid)
models Meta's db_table and ManyToManyField
Reported by: | tangc | Owned by: | |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 1.3-alpha |
Severity: | 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
Given both models as follows:
class P(AuditModel): description = models.CharField(max_length=50, unique=True) class Meta: db_table = 'P' class XSummary(AuditModel): p = models.ManyToManyField(P, blank = True, null = True, ) class Meta: db_table = 'Summary'
The 2 models with cutomized db_table name will generate a relationship table as follows:
CREATE TABLE "SUMMARY_P" ( "ID" NUMBER(11) NOT NULL PRIMARY KEY, "XSUMMARY_ID" NUMBER(11) NOT NULL, "P_ID" NUMBER(11) NOT NULL REFERENCES "P" ("ID") DEFERRABLE INITIALLY DEFERRED, ) ;
Now you can see that the table name "SUMMARY_P" combined the cutomized db_table name of both models. But the field "XSUMMARY_ID" still take the mode name -- "XSUMMARY", not the db_table "SUMMARY". Franckly, I would like to have the field "XSUMMARY_ID" as "field "SUMMARY_ID".
Any feedback or fix on the issue ?
Change History (3)
comment:1 by , 14 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:3 by , 12 years ago
Component: | ORM aggregation → Database layer (models, ORM) |
---|
Note:
See TracTickets
for help on using tickets.
This can be achieved by defining a custom m2m-through model, and defining the db_column attribute on the FK fields.