不幸的是,我有一种情况需要编写原始SQL查询。我有一个将具有许多多对多关系的模型,并且我尝试使用通用函数在查询中获取正确的信息。
多对多关系中的每一个都将按照shared = models.ManyToManyField(SharedResource)
的方式设置。在我的原始查询函数中,我给出了具有此定义的模型,并且需要构建表名来进行原始连接。
如何可靠地获取多对多连接器表名?
答案 0 :(得分:1)
模型的表名可以通过Model._meta.db_table
获得,您可以通过Model.field.through
到达M2M字段的直通表。所以,在你的情况下:
MyModel.shared.through._meta.db_table