在 HTSQL 中,你可以查询多对多关系吗?
在我的 Django 项目(应用程序名称为config
)中,我有一个Chapter
与 具有 ManyToMany 关系的模型FileName
。当我查看实际的 sqlite3 数据库时,我看到了 table config_chapter_filenames
,(当然所有 django 管理的东西都按预期工作)。但是当我打开一个 HTSQL shell 会话时,该表没有列出:
htsql-ctl shell -E tweak.django sqlite:/mydb.sqlite -E tweak.meta
/meta(/table)
它列出了我的每个模型的表格,但没有列出多对多关系。
我一直无法找出一个查询来列出每一章的文件名。我猜如果 HTSQL 没有看到可以解释问题的多对多关系。
有任何想法吗?
在 htsql shell 中,我看到了模型:
config_chapter
config_chapter_filenames
这是我的模型:
class Chapter(models.Model):
book = models.ManyToManyField(Book, through='ChapterMembership')
parent = models.ForeignKey(Book, related_name = '+')
filenames = models.ManyToManyField(FileName)
我正在尝试的网址是:
http://machinename/htsql/config_chapter{name,filenames}
我收到此错误:
bind error: unrecognized attribute 'filenames' in scope of 'config_chapter':
/config_chapter{name,filenames}
^^^^^^^^^
否则,我可以查询并获取章节和父级的名称,但仍然不能获取文件名。我对 introspect.py 进行了更改,停止了我的 apache 服务器并重新启动。还有什么我想念的吗?
还有一件事,在 htsql shell 中:
describe config_chapter
Slots for `config_chapter` are:
id integer
parent_id integer
name string
title string
parent SINGULAR(config_book)
config_chapter_filenames PLURAL(config_chapter_filenames)