小编Ant*_*nto的帖子

唯一约束包括特定字段值

对于我的车型之一,我需要保证唯一性的一些行,但只能在特定情况下.只有"已验证"的行才能遵循此约束.

基本上,我期待着类似的东西

class MyModel(models.Model):
    field_a = models.CharField()
    field_b = models.CharField()
    validated = models.BooleanField(default=False)

    class Meta:
        unique_together = (('field_a', 'field_b', 'validated=True'),)
Run Code Online (Sandbox Code Playgroud)

python django

5
推荐指数
2
解决办法
2281
查看次数

将文件从主机复制到docker容器,然后提交并推送

我在Ubuntu中使用docker.在开发阶段,我从主机中的Git克隆了所有源代码,在WebStorm中编辑它们,然后在Docker容器中运行Node.js -v /host_dev_src:/container_src以便我可以测试.

然后,当我想发送它们进行测试时:我提交了容器并推出了新版本.但是当我在测试机器上拉动并运行图像时,源代码丢失了.这是有道理的,因为在测试机器中没有/host_src可用的.

我目前的解决方法是在测试机器上克隆源代码并运行docker -v /host_test_src:/container_src.但是我想知道是否可以将源代码直接复制到容器中并避免这种操作.我更喜欢用源代码复制,粘贴和运行图像文件,特别是因为我们的测试机器上没有Internet连接.

PS:似乎docker cp只支持将文件从容器复制到主机.

docker

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

如何限制对象创建

考虑以下示例

class Key:
    def __init__(self, s):
        self.s = s

d = {}

for x in range(1, 10000):
    t = Key(x)
    d[t] = x
Run Code Online (Sandbox Code Playgroud)

这将创建10000个键.是否可以控制类键的对象创建,例如我们不能创建超过5个键类对象.不应以任何方式更改循环.

python python-2.7

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

如何将容器的主机名添加到/ etc/hosts?

为了支持一些旧的软件解决方案,我需要绑定我的容器的hostname127.0.0.1,让我有这样的事情:

$ hostname
4e84a7ae5f92
$ cat /etc/hosts | grep 127.0.0.1
127.0.0.1       localhost 4e84a7ae5f92
Run Code Online (Sandbox Code Playgroud)

最好的情况是在Dockerfile中做,但由于docker build构建了一个图像(而不是容器),它似乎不太现实.
此外,如果我尝试sed在正在运行的容器中执行此操作,我最终会收到错误:

$ sed -i '/^127\.0\.0\.1.*/ s/$/ '$(hostname)'/' /etc/hosts
sed: cannot rename /etc/sedC5PkA2: Device or resource busy
Run Code Online (Sandbox Code Playgroud)

我能做什么 ?

hosts docker

4
推荐指数
2
解决办法
5516
查看次数

在特定架构上运行inspectdb

我想使用inspectdb来为新引入的表构建相应的模型.但看起来这个命令只查找public模式,而新表是另一个.

是否可以指定架构inspectdb

django postgresql

3
推荐指数
2
解决办法
3584
查看次数

for(;;)(2个半冒号)循环是什么意思?

我正在研究VoIP软件的脚本,Freeswitch.该脚本将作为侦听套接字的入站消息的实例运行.

我使用Freeswitch提供的示例脚本,开始时,一切正常.

然而,有一点让我失望.

use IO::Socket::INET;
use warnings;
use strict;


my $sock = new IO::Socket::INET ( LocalHost => '127.0.0.1',  LocalPort => '8060',  Proto => 'tcp',  Listen => 1,  Reuse => 1 );
die "Could not create socket: $!\n" unless $sock;


for(;;) {
    my $new_sock = $sock->accept();
    my $pid = fork();
    if ($pid) {
      close($new_sock);
      next;
    } 
    close($new_sock); 
}
Run Code Online (Sandbox Code Playgroud)

究竟是什么;;意思?它是在创建套接字时定义的特殊运算符吗?苦苦寻找文档!

perl freeswitch

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

事件的Unique-ID和Channel-Call-UUID之间有什么区别?

Freeswitch事件包含两个变量(Unique-IDChannel-Call-UUID),似乎总是设置为完全相同的值:leg的唯一标识符.

我没有看到这个的目的,虽然Unique-ID有一个关于FS维基的单行文档("这个频道的呼叫支路的uuid"),但是Channel-Call-UUID没有.
更糟糕的是:我的两个例子中他们的价值观不同:

[...]
Channel-Call-UUID:  c9bbde8b-379b-45d4-b193-3f761a44f3e2
Unique-ID:  81273088-c31f-4469-85a6-c878e42210e5
[...]

[...]
Channel-Call-UUID: ada7f3de-2374-4144-9b1d-eade29df0779
Unique-ID: f3ebca6c-d9cd-4f89-ae12-748e6c479dda
[...]
Run Code Online (Sandbox Code Playgroud)

我需要能够清楚地识别代码中的一条腿,所以我想知道

  • 哪一个是最准确的
  • 另一个的目的是什么?

freeswitch

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

一次为几个字符串项使用.append

对于大多数人来说,这可能是一个基本问题,但我无法通过谷歌搜索找到任何具体信息,也无法找到任何先前提出的问题:

我想知道是否可以通过使用.append将几个项目附加到已经包含一个项目的列表中,然后使用它来获取所有项目的数字输出len().当我输入我的代码时如下:

bag.append('suit', 'shoes', 'socks')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

TypeError: append() takes exactly one argument (3 given)
Run Code Online (Sandbox Code Playgroud)

我尝试过如下双括号:

bag.append(('suit', 'shoes', 'socks))
Run Code Online (Sandbox Code Playgroud)

但这导致len(bag)我告诉我只有2个项目bag(即原来的一个&(suit, shoes, socks).目标的数字是4(即原始项目+西装+鞋子+袜子).

我使用过的唯一成功完成此操作的方法如下:

bag.append('suit')
bag.append('shoes')
bag.append('socks')
Run Code Online (Sandbox Code Playgroud)

len(bag)在这个上运行的时候,我分别得到了4个项目的正确输出,即4个(原始项目包= [手套] + '西装' + '鞋' + '袜子'.

python python-2.7 python-3.x

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

为什么设计著名的浏览按钮(文件输入)的样式如此困难?

每个人都希望(并且应该)知道如何在 html 表单中设置文件输入的样式(并且有几种众所周知的技术)。但我更想知道为什么我们必须与一个看似微不足道的技术限制作斗争,而且比一切都重要。

我对w3c 文档不太满意,所以也许我在研究过程中完全错过了它,但我找不到任何关于这个问题起源的可靠文档(参考文献会很好)。

html css

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

怎么说"if var:"即使"var"根本不存在?

这样可以正常工作:

a = 1
if a:
  b = a
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

if a:
  b = a
Run Code Online (Sandbox Code Playgroud)

鉴于我们明确表示,它不会像执行此"if"语句一样执行.

 "if a exists" 
Run Code Online (Sandbox Code Playgroud)

那为什么会出错呢?如果它不存在则只是在if语句的参数内不做任何事情.

UPDATE

事实证明"如果一个"意味着......"如果一个值"意味着在python中.

我正在寻找"如果一个存在然后前进"的等价性

python python-2.7

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

多个不等式(a <b <c ...),可能缺少值

我想一次测试多个不等式,即

if (a < b < c < ...)
Run Code Online (Sandbox Code Playgroud)

当所有值都存在时,这很好.但是,有时一个或多个要比较的变量的数值可能会丢失/未知; 我的上下文中的正确行为是假设满足相关的不等式.假设我None在值未知时分配特殊值:我想从<运营商(或替代方案)获得的行为是:

>>> a = 1; b = 2; c = 3
>>> a < b < c # this works fine, obviously
True 
>>> b = None
>>> a < b < c # would like this to return True
False
Run Code Online (Sandbox Code Playgroud)

所以我想知道True如果一个变量真的比另一个变量小,或者如果缺少一个变量(取任何特定的预先确定的非数值),或者两个变量都丢失了,我想能够串联比较起来一气呵成即a < b < c < ...
我也想和这样做<=,以及<.
谢谢

python missing-data inequalities

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

从查询集中删除(过滤掉)对象

我想从我的查询集中删除 3 个对象。这在额外列表的帮助下工作,但我很确定应该有更好的方法来使用QuerySet API来做到这一点。但是我还没有弄清楚如何:

我在做什么:

ranks = Rank.objects.all()
remove_ranks = ['Field Marshall', 'Military Attache', 'Mercenary Recruiter']
new_ranks =[]

for rank in ranks:
    if not rank.name in remove_ranks:
        new_ranks.append(rank)
Run Code Online (Sandbox Code Playgroud)

我如何使用 Django API 做到这一点?

django django-orm

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