如何在自查表中归还孩子的父母?

正义

我建立了这个模型来管理我网站的内容。除了我无法弄清楚如何显示给定“孩子”的“父母”之外,这似乎工作得很好。

数据结构

这使我可以将内容组织到树中。

Parent
--- child 1
--- child 2
--- child 3
--------grandchild 1
--------grandchild 2

模型

class Service(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    parent_id = db.Column(db.Integer, db.ForeignKey('service.id'))
    parent = db.relationship('Service', remote_side=[id], backref='children')
    slug = db.Column(db.String(120), unique=True)
    label = db.Column(db.String(80), unique=True)
    body = db.Column(db.UnicodeText)
    meta_desc = db.Column(db.UnicodeText)
    meta_kw = db.Column(db.UnicodeText)
    date_create = db.Column(db.DateTime)

    def __unicode__(self):
        return self.slug

    def __repr__(self):
        return self.label

这有效.....

>>> Service.query.filter_by(slug="/about").all()
[About]

也是...

>>> Service.query.filter_by(parent=None).all()
[]

这不行

>>> Service.query.filter_by(parent="/about").all()

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/jwogrady/.virtualenvs/medcol/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 1296, in filter_by
    for key, value in kwargs.items()]
  File "/Users/jwogrady/.virtualenvs/medcol/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 298, in __eq__
    return self.operate(eq, other)
  File "/Users/jwogrady/.virtualenvs/medcol/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 176, in operate
    return op(self.comparator, *other, **kwargs)
  File "/Users/jwogrady/.virtualenvs/medcol/lib/python2.7/site-packages/sqlalchemy/orm/relationships.py", line 1002, in __eq__
    other, adapt_source=self.adapter))
  File "/Users/jwogrady/.virtualenvs/medcol/lib/python2.7/site-packages/sqlalchemy/orm/relationships.py", line 1338, in _optimized_compare
    value = attributes.instance_state(value)
AttributeError: 'str' object has no attribute '_sa_instance_state'

对于给定的孩子,我如何获得父母?

大卫主义

要获得父项带有“ about”字样的所有服务,请使用以下has比较:

Service.query.filter(Service.parent.has(Service.slug == '/about')).all()

或者,为了在大型表上获得更好的性能,请使用别名和联接:

parent = db.aliased(Service)
Service.query.join((parent, parent.id == Service.parent_id)).filter(parent.slug == '/about').all()

如果您的字面意思是“我如何获得给定服务的父服务”,则只需使用实例从实例中访问它即可s.parent

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在自查表中归还孩子的父母?

来自分类Dev

如何在Elasticsearch中按孩子数对父母排序

来自分类Dev

如何在Polymer中反映从孩子到父母的变化

来自分类Dev

如何在MySQL中获得父母最受关注的孩子

来自分类Dev

如何在JPA / Hibernate的孩子的ID中引用父母的ID?

来自分类Dev

如何在Visio中让孩子建立父母关系?

来自分类Dev

如何在 UWP 中为孩子提供父母的身高

来自分类Dev

你如何在laravel eloquent中查询孩子和父母

来自分类Dev

你如何在laravel eloquent中查询孩子和父母

来自分类Dev

C程序-如何在父母中获得孩子的孩子pid [分叉后]

来自分类Dev

如何在父母的孩子中通过引用访问孩子-React @ latest

来自分类Dev

C程序-如何在父母中获得孩子的孩子pid [分叉后]

来自分类Dev

如何在 css/scss 中从孩子中定位父母的兄弟姐妹?

来自分类Dev

如何在Android中为2个指向1个孩子活动的父母实施向上导航

来自分类Dev

如何在Polymer.dart中监听从父母传递给孩子的事件

来自分类Dev

如何在O(1)查询中同时过滤父母和孩子?

来自分类Dev

如何在一个查询中让所有孩子成为父母

来自分类Dev

如何在父母和孩子之间共享过滤器

来自分类Dev

如何在父母静态方法中使用孩子的变量?

来自分类Dev

如何在父母和孩子之间共享过滤器

来自分类Dev

如何在首页上而不是在整页上隐藏父母的孩子

来自分类Dev

如何在Angular中将道具孩子设置为父母?

来自分类Dev

如何从孩子向父母的父母发送数据

来自分类Dev

如何使用jQuery使孩子成为父母的父母?

来自分类Dev

如何查询laravel中的深层关系并按孩子筛选父母?

来自分类Dev

如何将非固定孩子居中于固定父母中

来自分类Dev

如何为父母声明孩子是Qt中的共享指针

来自分类Dev

如何使用角度计算孩子的总数并在父母中显示

来自分类Dev

如何在React Native中从孙子传达到其祖父母然后再传递回祖父母的孩子

Related 相关文章

  1. 1

    如何在自查表中归还孩子的父母?

  2. 2

    如何在Elasticsearch中按孩子数对父母排序

  3. 3

    如何在Polymer中反映从孩子到父母的变化

  4. 4

    如何在MySQL中获得父母最受关注的孩子

  5. 5

    如何在JPA / Hibernate的孩子的ID中引用父母的ID?

  6. 6

    如何在Visio中让孩子建立父母关系?

  7. 7

    如何在 UWP 中为孩子提供父母的身高

  8. 8

    你如何在laravel eloquent中查询孩子和父母

  9. 9

    你如何在laravel eloquent中查询孩子和父母

  10. 10

    C程序-如何在父母中获得孩子的孩子pid [分叉后]

  11. 11

    如何在父母的孩子中通过引用访问孩子-React @ latest

  12. 12

    C程序-如何在父母中获得孩子的孩子pid [分叉后]

  13. 13

    如何在 css/scss 中从孩子中定位父母的兄弟姐妹?

  14. 14

    如何在Android中为2个指向1个孩子活动的父母实施向上导航

  15. 15

    如何在Polymer.dart中监听从父母传递给孩子的事件

  16. 16

    如何在O(1)查询中同时过滤父母和孩子?

  17. 17

    如何在一个查询中让所有孩子成为父母

  18. 18

    如何在父母和孩子之间共享过滤器

  19. 19

    如何在父母静态方法中使用孩子的变量?

  20. 20

    如何在父母和孩子之间共享过滤器

  21. 21

    如何在首页上而不是在整页上隐藏父母的孩子

  22. 22

    如何在Angular中将道具孩子设置为父母?

  23. 23

    如何从孩子向父母的父母发送数据

  24. 24

    如何使用jQuery使孩子成为父母的父母?

  25. 25

    如何查询laravel中的深层关系并按孩子筛选父母?

  26. 26

    如何将非固定孩子居中于固定父母中

  27. 27

    如何为父母声明孩子是Qt中的共享指针

  28. 28

    如何使用角度计算孩子的总数并在父母中显示

  29. 29

    如何在React Native中从孙子传达到其祖父母然后再传递回祖父母的孩子

热门标签

归档