2

在 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)
4

1 回答 1

1

蒂姆,

感谢您的报告,我在以下位置修复了此错误: https ://bitbucket.org/prometheus/htsql/changeset/d5dd4e95bcf31f5416b9e17187deebb329e9dd4f

于 2012-09-07T23:11:27.513 回答