小编Bry*_*ley的帖子

防止Django模型中的DateRangeField重叠?

现在Django支持DateRangeField,是否存在一种“ Pythonic”方式来防止记录具有重叠的日期范围?

假设用例

一种假设的用例是预订系统,您不希望人们在同一时间预订相同的资源。

假设示例代码

class Booking(models.model):
    # The resource to be reserved
    resource = models.ForeignKey('Resource')
    # When to reserve the resource
    date_range = models.DateRangeField()

    class Meta:
        unique_together = ('resource', 'date_range',)
Run Code Online (Sandbox Code Playgroud)

python django postgresql django-models

5
推荐指数
1
解决办法
544
查看次数

向 dbt 模型列添加索引?

我们正在考虑使用 dbt 来管理 PostgreSQL 数据仓库中的模型。由于 dbt 模型是 SQL select 语句,因此似乎没有明显的或有记录的方法来指定特定列应该具有索引。

我们如何在 dbt 模型上指定列索引?

postgresql dbt

5
推荐指数
1
解决办法
8139
查看次数

Postgres 检查表行中的时间戳范围重叠

我们有一个 Postgres 表(物化视图),其中包含大约 200 万行,其中的列如下:

  • start_time (timestampz) - 有索引
  • end_time (timestampz) - 有索引

对于表中的每一行,我们想添加一个结果列,其中包含:

  • 1、如果行开始和结束时间范围与任何其他行重叠
  • 0,如果行开始和结束时间范围不与任何其他行重叠

将每一行标记为具有重叠(1 或 0)的有效方法是什么?

编辑:

预期的输出将类似于:

  • row_id
  • has_overlap - 布尔值或整数(1 或 0)

sql postgresql datetime time-series

4
推荐指数
1
解决办法
2419
查看次数

如何通过DataFrame展平Pandas group?

我有一个按日期和'结果'分组的Pandas DataFrame:

api_logs.groupby([api_logs.index.date, 'Outcome']).size()
Run Code Online (Sandbox Code Playgroud)
            Outcome
2017-04-22  Success      7
2017-04-24  Failure     32
            Success     59
2017-04-25  Failure     23
            Success     91
2017-04-26  Failure      1
            Success     59
2017-04-27  Failure      3
            Success      1
2017-04-28  Failure      1
            Success      2
2017-04-29  Success      3
2017-05-03  Failure     38
2017-05-04  Failure      6
            Success    727

如何展平嵌套数据,使其结构如下?

            Failure    Success
2017-04-22                   7
2017-04-24       32         59
2017-04-25       23         91
2017-04-26        1         59
2017-04-27        3          1
2017-04-28        1          2
2017-04-29        3
2017-05-03       38
2017-05-04        6        727

我的最终目标是在图表中将失败和成功结合在一起,所以也许总有一种不同的方法?

python pandas pandas-groupby

3
推荐指数
1
解决办法
4064
查看次数

在非页面模型上渲染 Wagtail InlinePanel,而不使用片段?

我定义了两个模型并将它们链接起来,如下所示。该Order模型应OrderItems使用 Wagtail InlinePanel 显示。如何在将模型注册Order为片段的情况下使其工作?

from wagtail.admin.edit_handlers import InlinePanel
from wagtail.core.models import Orderable
from wagtail.snippets.models import register_snippet

from modelcluster.fields import (
    ParentalKey,
)
from modelcluster.models import ClusterableModel


@register_snippet
class Order(ClusterableModel):
   panels = [
        InlinePanel("items", label="Order items"),
    ]

    def __str__(self):
        return f"Order {self.id}"

    def get_total_cost(self):
        return sum(item.get_cost() for item in self.items.all())


class OrderItem(Orderable):
    order = ParentalKey(
        Order,
        related_name="items",
        on_delete=models.CASCADE,
        blank=False,
    )
    product = models.CharField(max_length=255)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    quantity = models.PositiveIntegerField(default=1)

    panels = [ …
Run Code Online (Sandbox Code Playgroud)

django-models wagtail

2
推荐指数
1
解决办法
1015
查看次数

如何将 base.html 用于默认 Wagtail Page 实例?

Wagtail 使用单个欢迎模板启动新项目。但是,此模板不继承任何父模板,例如base.html. 在我们的项目中,我们之前定义了一个base.html包含全局 HTML 标签和 CSS/JavaScript 的包含。

我们如何告诉默认的 Wagtail Page 模型显示在扩展的模板中base.html

django wagtail

2
推荐指数
1
解决办法
599
查看次数