小编Nar*_*asK的帖子

如何排除 Django models.Model.save() 中的字段

我有以下内容model,保存时根据以下内容计算hash_id字段pk

class MyTable(models.Model):
    something = models.CharField(max_length=255)
    reported = models.IntegerField(default=0, blank=True)
    hash_id = models.CharField(max_length=32, db_index=True, unique=True, blank=True)

    def save(self, *a, **kw):
        super().save(*a, **kw)
        self.hash_id = hash_fn(self.pk)
        super().save(*a, **kw)
Run Code Online (Sandbox Code Playgroud)

在我的其中一行中,我views有以下几行,它们应该将reported字段增加 1,但是reported由于重写的save方法而增加了 2 :

my_table_ins.reported = F('reported') + 1
my_table_ins.save()
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想要以下内容:

    def save(self, *a, **kw):
        super().save(*a, exclude=['reported'], **kw)
        self.hash_id = hash_fn(self.pk)
        super().save(*a, **kw)
Run Code Online (Sandbox Code Playgroud)

django django-models python-3.x

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

确保 urlpatterns 是 path() 和/或 re_path() 实例的列表

我的urlpatterns怎么了?

urlpatterns = [
    re_path(r'^dj-admin/', admin.site.urls),
    re_path(r'^admin/', include(wagtailadmin_urls)),
    re_path(r'^docs/', include(wagtaildocs_urls)),

    i18n_patterns(
        path(r'', include(wagtail_urls)),
        prefix_default_language = False
    )
]
Run Code Online (Sandbox Code Playgroud)

错误:
?: (urls.E004) 您的 URL 模式 [ (None:None) ''>] 无效。确保 urlpatterns 是 path() 和/或 re_path() 实例的列表。

据我所知,它相当于文档中的示例:

urlpatterns = [
    path('sitemap.xml', sitemap, name='sitemap-xml'),
]

urlpatterns += i18n_patterns(
    path('about/', about_views.main, name='about'),
)
Run Code Online (Sandbox Code Playgroud)

顺便提一句:

In [1]: import django

In [2]: django.__version__
Out[2]: '2.0.5'
Run Code Online (Sandbox Code Playgroud)

python django python-3.x

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

按复杂条件合并/加入2个DataFrame

我有2个大型数据集(每个70K到110K大).我想关联/比较两者,并根据某些条件/标准找到set1中的哪些项目可以在set1中找到.

我当前的策略是按公共字段对两个列表进行排序,然后运行嵌套for循环,执行条件if测试,使用找到的项目和不匹配的项目聚合预定义的dict.

例:

import pandas as pd

list1 = [{'a': 56, 'b': '38', 'c': '11', 'd': '10', 'e': 65},
         {'a': 31, 'b': '12', 'c': '26', 'd': '99', 'e': 71},
         {'a': 70, 'b': '49', 'c': '40', 'd': '227', 'e': 1},
         {'a': 3, 'b': '85', 'c': '32', 'd': '46', 'e': 70},]
list2 = [{'a': 56, 'b': '38', 'c': '11', 'd': '10', 'e': 65},
         {'a': 145, 'b': '108', 'c': '123', 'd': '84', 'e': 3},
         {'a': 113, 'b': '144', 'c': …
Run Code Online (Sandbox Code Playgroud)

python scipy dataframe pandas scikit-learn

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

Ansible有条件地委托本地或远程?

我有一些ansible有时在本地环境中有意义的剧本,否则它们是远程执行的.为了做到这一点,我使用delegate_to指令,但这也意味着我必须加倍我的所有任务,例如:

---
- hosts: all
  gather_facts: no

  tasks:

  - name: Local command
    command: hostname
    register: target_host
    when: vhost is undefined
    delegate_to: 127.0.0.1

# ---    

  - name: Remote command
    command: hostname
    register: target_host
    when: vhost is defined
Run Code Online (Sandbox Code Playgroud)

Exec local:

$ ansible-playbook -i inv.d/test.ini play.d/delegate.yml

PLAY [all] ******************************************************************** 

TASK: [Local command] ********************************************************* 
changed: [new-server -> 127.0.0.1]

TASK: [Remote command] ******************************************************** 
skipping: [new-server]

PLAY RECAP ******************************************************************** 
new-server                 : ok=1    changed=1    unreachable=0    failed=0
Run Code Online (Sandbox Code Playgroud)

远程执行:

$ ansible-playbook -i inv.d/test.ini …
Run Code Online (Sandbox Code Playgroud)

ansible ansible-playbook

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

组件渲染函数中的无限更新循环

我试图了解vue组件是如何工作的。textarea最终目标是当我单击 Go! 时向只读添加一行。按钮。目前我被以下代码困住了:

// Register components
Vue.component('chatarea', {
  delimiters: ['${', '}'],
  props: ['msg'],
  template: '<textarea readonly="" rows="20">${msg}</textarea>',
})


// Create a root instance
var app = new Vue({
  el: '#app',
  delimiters: ['${', '}'],
  data: {
      messages: [
        'Hello from Vue!',
        'Other line...'
      ],
  },
  methods: {
    get_msg: function () {
      return this.messages.reverse().join('\n');
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

以下内容html按照我想要的方式呈现 - 消息以相反的顺序显示:

  <div class="container" id="app">

    <div class="row">
      <div class="col-md-8 offset-md-2">
        <form action="/question" enctype="multipart/form-data" method="get" v-on:submit.prevent="onSubmit">
          <div class="input-group">
            <input …
Run Code Online (Sandbox Code Playgroud)

javascript vuejs2

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

如何在python-trio中的KeyboardInterrupt之后清理连接

我的班级在连接到服务器时应立即发送登录字符串,然后在会话结束后应发送退出字符串并清理套接字。下面是我的代码。

import trio

class test:

    _buffer = 8192
    _max_retry = 4

    def __init__(self, host='127.0.0.1', port=12345, usr='user', pwd='secret'):
        self.host = str(host)
        self.port = int(port)
        self.usr = str(usr)
        self.pwd = str(pwd)
        self._nl = b'\r\n'
        self._attempt = 0
        self._queue = trio.Queue(30)
        self._connected = trio.Event()
        self._end_session = trio.Event()

    @property
    def connected(self):
        return self._connected.is_set()

    async def _sender(self, client_stream, nursery):
        print('## sender: started!')
        q = self._queue
        while True:
            cmd = await q.get()
            print('## sending to the server:\n{!r}\n'.format(cmd))
            if self._end_session.is_set():
                nursery.cancel_scope.shield = True …
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-3.5 python-3.6 python-trio

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

Kubernetes RBAC - 禁止尝试授予额外特权

Kubernetes在自定义构建的CoreOS集群上使用v1.8.14 :

$ kubectl version --short 
Client Version: v1.10.5
Server Version: v1.8.14+coreos.0
Run Code Online (Sandbox Code Playgroud)

尝试创建以下内容时ClusterRole:

$ cat ClusterRole.yml 
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: system:coredns
rules:
- apiGroups:
  - ""
  resources:
  - endpoints
  - services
  - pods
  - namespaces
  verbs:
  - list
  - watch
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

$ kubectl create -f ClusterRole.yml 
Error from server (Forbidden): error when creating "ClusterRole.yml": clusterroles.rbac.authorization.k8s.io "system:coredns" is forbidden: attempt to grant extra privileges: [PolicyRule{Resources:["endpoints"], APIGroups:[""], Verbs:["list"]} PolicyRule{Resources:["endpoints"], APIGroups:[""], …
Run Code Online (Sandbox Code Playgroud)

rbac coreos kubernetes kubectl

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

如何使用 terraform 创建默认 AWS VPC?

有没有办法使用 terraform 创建默认 AWS VPC?

aws_vpc资源没有任何属性将 VPC 标记为默认。

我知道我可以使用 aws-cli aws ec2 create-default-vpc,但那超出了 terraform 的范围。

terraform terraform-provider-aws

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

select2不加载ajax数据:TypeError:c.ajax不是函数

仅通过进行Select2 hello-world练习,我无法加载ajax数据,而是出现错误:

未捕获的TypeError:c.ajax不是 d(select2.min.js:1)的
Object.transport(select2.min.js:1)的函数

我的代码:

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/js/bootstrap.min.js" integrity="sha384-a5N7Y/aK3qNeh15eJKGWxsqtnX/wWdSZSKp+81YjTmS15nvnvxKHuzaWwXHDli+4" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $('#my-input').select2({
      placeholder: "Search for something",
      minimumInputLength: 1,
      ajax: {
        url: "https://www.example.com/search",
        dataType: 'json',
        delay: 250,
        data: function(params) {
          return {
            "term": params.term, // search term
            "from": 0,
            "size": 20
          };
        },
        processResults: function (data, params) {
          params.page = params.page || 1;
          data.hits = $.map(data.hits, function(obj) {
            obj.text = obj.text || obj.name;
            return …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery jquery-select2

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

如何将计算变量添加到 wagtail StructBlock 模板上下文?

我想custom根据 中的其他块值计算一些变量StructBlock并将此custom变量添加到模板上下文中。基本上我应该能够StructBlock像这样在模板中使用这个计算变量{{ value.custom }}

这是我的StructBlock

class BaseBlock(blocks.StructBlock):
    bool_fld = blocks.BooleanBlock(required=False, default=False)

    def get_context(self, *a, **kw):
        ctx = super().get_context(*a, **kw)
        ctx['custom'] = 1 if self.bool_fld else 0
        return ctx
Run Code Online (Sandbox Code Playgroud)

和错误:

“BaseBlock”对象没有属性“bool_fld”

有任何想法吗?

django-templates python-3.x wagtail wagtail-streamfield

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