首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用非常特定的规则集从父行中选择子行

使用非常特定的规则集从父行中选择子行
EN

Stack Overflow用户
提问于 2018-10-03 04:25:59
回答 1查看 27关注 0票数 0

我有一个父母的模型,有超过30,000记录,其中至少有3-4个孩子。我希望能够用非常具体的规则集在桌子上显示孩子们。

代码语言:javascript
复制
from django.db import models
from django.utils.translation import ugettext_lazy as _

class Parent(models.Model):
    name = models.CharField(_("Name"), max_length=128)    


class Child(models.Model):
    parent = models.ForeignKey(Parent)
    state = models.CharField(
        _("State"), choices=(
            ('A', "Apple"),
            ('B', "Ball"),
            ('C', "Cat"),
            ('D', "Dog"),
        )
    )

使用上面的两个模型,我过滤掉了所有属于state is "A" or "B"的子对象。我觉得很难满足的部分要求是,我可能在AsCs之间设置了一个As,例如,排列成一行:

代码语言:javascript
复制
 [R]        [R]         [R]
Apple       Cat         Cat

如果它们之间没有B状态,我想检索AsCs,但是我有一个特例,我想在下一个C之前检索最新的B,而不是AB本身。

代码语言:javascript
复制
            [R]                                 [R]                     [R]         [R]
Apple       Ball        Cat         Ball        Ball        Cat         Ball        Cat

总结如下:

我希望始终在下一个C之前选择最新的B,如果在As或Cs之后有B,或者行的末尾是B。

这在PostgreSQL中是完全可能的吗?因为缺少查询所有内容并使用Python对数据进行按摩,因为我正在显示记录的表是分页的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-12 10:34:05

@Paulo斯卡丁有一个好主意,他开始使用MPTT来选择对象之前的对象作为父母,如果它是一个球。谢谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52619681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档