【问题标题】:Accessing related models with django-tables2使用 django-tables2 访问相关模型
【发布时间】:2013-01-22 14:57:55
【问题描述】:

谁能提供一个清晰的例子来说明如何使用 django-tables2 创建一个表对象,该对象从多个相关模型(即关系连接)中选择和呈现数据?文档暗示这是可能的,但没有说明如何。

在普通的 django 中,select_related() 函数工作得很好,但我无法弄清楚如何在 django-tables2 中实现它。我注意到在类似主题上还有其他 unanswered questions

【问题讨论】:

    标签: django django-tables2


    【解决方案1】:

    首先,select_related() 不需要访问相关数据,它是出于性能原因。对于 django-tables2,您需要定义一个 accessor。一个例子在这里:https://github.com/bradleyayers/django-tables2/issues/106

    【讨论】:

    • 感谢我们!这很有帮助。表定义中的foreigncolumn = tables.Column(accessor='foreignmodel.foreigncolumnname') 是一种享受。
    • 很高兴听到这个消息!一个很好的提示是在 Githup repos 的问题部分中搜索关键字,通常除了 SO 之外,您还会在那里找到解决方案。您能否将答案标记为已接受?谢谢。
    • 用 1:N 代替 N:1 怎么样?例如 - 如果我想连接表格单元格中的所有相关模型怎么办?使用旧的render_<column_name>(self, record) 方式,这是可能的。我尝试将lambda record: ' '.join(...) 传递给accessor=,但它只给了我None (--)。而且我不想在模型中添加这样的方法,我知道它是有效的。我只是不认为它属于“模型层”,而是属于“表层”(tables.py)。
    • @TomaszGandor 你能用accessor='id' 创建一个新列,然后在渲染函数中调用相关项吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多