#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 , 15 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
comment:3 by , 13 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.