Opened 15 years ago
Last modified 13 years ago
#12559 closed
Wrong SQL in M2M fields — at Initial Version
Reported by: | anonymous | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 1.2-alpha |
Severity: | Keywords: | ||
Cc: | andrey.offline@… | Triage Stage: | Unreviewed |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
I have some strange problem after updating to the 1.2 alpha version.
My simplified model is
class Sticker(models.model):
telephones = models.ManyToManyField("account.Telephone")
when i run
sticker = Sticker.object.get(pk=1)
sticker.telephones.all()
Django generated sql is:
u'SELECT account_telephone
.id
, account_telephone
.tel_city
, account_telephone
.tel_number
, account_telephone
.profile_id
FROM account_telephone
INNER JOIN service_sticker_telephones
ON (account_telephone
.id
= service_sticker_telephones
.account.telephone_id
) WHERE service_sticker_telephones
.sticker_id
= 1'
The wrong thing is service_sticker_telephones.
account.telephone_id , it should be service_sticker_telephones
.telephone_id
, but somehow the application name was added. Even more interesting is that in my model i have another M2M field that works well.
I tried to debug, but ORM layer is to complex for me. By the way, my backend is MySQL.