小编Geo*_*rge的帖子

如何更改子类python中的父属性

我有以下课程

class Foo():
    data = "abc"
Run Code Online (Sandbox Code Playgroud)

我把它子类化了

class Bar(Foo):
    data +="def"
Run Code Online (Sandbox Code Playgroud)

我正在尝试编辑子类中的父类属性.我希望我的父类有一些字符串,我的子类应该为该字符串添加一些额外的数据.如何在Python中完成?我设计错了吗?

python oop namespaces subclassing

10
推荐指数
2
解决办法
8672
查看次数

在编译时内联的 Typescript 全局枚举

我有一个枚举,几乎在我的项目中的任何地方都使用它。我不想将其导入每个文件中。有没有办法在.d.ts文件中定义一个枚举,以便在编译为 js 时将其内联?

在我的types/global.d.ts文件中我尝试过

declare enum MessageType {
    DIRECT = 'direct',
    FORWARDED = 'forwarded'
}
Run Code Online (Sandbox Code Playgroud)

当我运行该应用程序时,MessageType.DIRECT is not defined我尝试使用它的代码中的某处出现错误。我从未导入过这个枚举,因为 tslint 可以识别它并且自动补全也可以工作。

我也尝试了declare const enum ...同样的效果。

有任何想法吗?

enums typescript

10
推荐指数
1
解决办法
6809
查看次数

手动创建复制插槽以在PostgreSQL 10中发布

我正在尝试从PostgreSQL数据库中获取某些表的更新流。获取所有更新的常规方法如下所示:

您创建一个逻辑复制插槽

pg_create_logical_replication_slot('my_slot', 'wal2json');
Run Code Online (Sandbox Code Playgroud)

并使用pg_recvlogical或进行特殊的SQL查询连接到它。这使您可以从json中的数据库中获取所有操作(如果您使用了wal2json插件或类似工具),然后对该数据执行任何操作。

但是在PostgreSQL 10中,我们具有发布/订阅机制,该机制仅允许我们复制选定的表。这非常方便,因为不会发送大量无用的数据。该过程如下所示:

首先,您创建出版物

CREATE PUBLICATION foo FOR TABLE herp, derp;
Run Code Online (Sandbox Code Playgroud)

然后,您从另一个数据库订阅该出版物

CREATE SUBSCRIPTION mysub CONNECTION <connection stuff> PUBLICATION foo;
Run Code Online (Sandbox Code Playgroud)

这将在后台的主数据库上创建一个复制插槽,并开始侦听更新并将它们提交到第二个数据库的相同表中。如果您的工作是复制一些表,但又想获取原始数据流,那就很好了。

如前所述,该CREATE SUBSCRIPTION查询正在幕后的master数据库上创建一个复制插槽,但是如何在没有订阅的情况下手动创建一个复制插槽,又如何创建另一个数据库呢?这里的文档说:

为此,请单独创建复制插槽(使用具有插件名称pgoutput的函数pg_create_logical_replication_slot)

根据文档,这是可能的,但是pg_create_logical_replication_slot只能创建一个常规的复制插槽。是pgoutput插件负责所有的魔法?如果是,那么将无法使用其他插件(如wal2json出版物)。

我在这里想念什么?

postgresql replication postgresql-10

6
推荐指数
2
解决办法
1314
查看次数

根据样式组件中的父属性更改嵌套组件的样式?

假设我有一个包装器组件,其中包含一些其他组件:

const Card = styled.div`
    background-color: ${props => props.selected ? 'green' : 'none'}
`

<Card>
    <Header>
        <Logo/>
    </Header>
    <Footer/>
</Card>
Run Code Online (Sandbox Code Playgroud)

它们都是样式组件。selected当我将支撑传递给卡片时,卡片会变成绿色。如何<Logo>根据传递给的该道具更改样式<Card>

例如,在纯CSS中我是这样做的:

const Card = styled.div`
    background-color: ${props => props.selected ? 'green' : 'none'}
`

<Card>
    <Header>
        <Logo/>
    </Header>
    <Footer/>
</Card>
Run Code Online (Sandbox Code Playgroud)

在样式组件中复制此行为的最佳方法是什么?selected我不喜欢将prop 传递给 的所有孩子的想法<Card>

javascript reactjs styled-components

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

如果django模型已经具有相关的类,如何将其转换为抽象模型

可以说我有以下基本模型:

class human(models.Model):
   gender = models.BooleanField()
   age = models.IntegerField()
   name = models.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)

还有两个继承它的模型:

class superhero(human):
   can_fly = models.BooleanField()

class villain(human):
   fingerprint = models.ImageField()
Run Code Online (Sandbox Code Playgroud)

在开发过程中的某个时候,我意识到我实际上并不需要直接的人类阶级。我只需要它成为超级英雄和反派模型的一组模板参数。如果现在我去上人类Meta课,abstract=True像这样设置和更改我的模型:

class human(models.Model):
   gender = models.BooleanField()
   age = models.IntegerField()
   name = models.CharField(max_length=200)

   class Meta:
       abstract = True

class superhero(human):
   can_fly = models.BooleanField()

class villain(human):
   fingerprint = models.ImageField()
Run Code Online (Sandbox Code Playgroud)

尝试进行迁移和迁移将引发以下错误

“超级英雄”类中的本地字段“性别”与基类“人类”中的相似名称字段发生冲突

如何在不直接修改数据库的情况下切换到抽象类,保留所有迁移?

python django abstract-class django-models django-migrations

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

SPA React 应用程序的动态 OpenGraph 标签

我想opengraph为我的create-react-app网站添加一些标签。问题是,当我动态添加它们时,Helmet它们没有被正确解析。有什么好的解决方法吗?

meta-tags single-page-application reactjs

0
推荐指数
1
解决办法
2394
查看次数