小编Thi*_*t J的帖子

在django中覆盖UserManager

如何auth_user在django中为该类使用自定义管理器?

在我的django项目中,我正在使用auth_user,我有一个基本的个人资料类.在我网站的每个页面中,我都使用了一些用户和个人资料数据,因此每个用户查询都应该加入个人资料.

我想在自定义管理器中使用select_relatedget_query_set()方法,但我找不到任何正确的方法来定义一个,或覆盖现有的UserManager.有任何想法吗?

注意:我不想覆盖用户模型.或者,更确切地说,我已经在不同的代理模型中覆盖了它.我希望在每个代理模型中使用此自定义管理器.

authentication django usermanager

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

在django中使用sqlite启用完整性检查

在我的django项目中,我使用mysql db进行生产,使用sqlite进行测试.

问题是,我的一些代码依赖于模型完整性检查.它适用于mysql,但在测试中执行相同的代码时不会抛出完整性错误.

我知道必须在sqlite中激活外键检查:

PRAGMA foreign_keys = 1;
Run Code Online (Sandbox Code Playgroud)

但是,我不知道这种激活的最佳方式在哪里(这里也是同样的问题).

此外,以下代码将不起作用:

def test_method(self):
    from django.db import connection
    cursor = connection.cursor()
    cursor.execute('PRAGMA foreign_keys = ON')
    c = cursor.execute('PRAGMA foreign_keys')
    print c.fetchone()
    >>> (0,)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

sqlite django pragma integrity

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

python zipfile是线程安全的吗?

在django项目中,我需要为db中的对象生成一些pdf文件.由于每个文件都需要几秒钟才能生成,因此我使用celery异步运行任务.

问题是,我需要将每个文件添加到zip存档中.我打算使用python zipfile模块,但不同的任务可以在不同的线程中运行,我想知道如果两个任务同时尝试将文件添加到存档会发生什么.

以下代码线程是否安全?我在python官方文档中找不到任何有价值的信息.

try:
    zippath = os.path.join(pdf_directory, 'archive.zip')
    zipfile = ZipFile(zippath, 'a')
    zipfile.write(pdf_fullname)
finally:
    zipfile.close()
Run Code Online (Sandbox Code Playgroud)

注意:这是在python 2.6下运行的

python django thread-safety zipfile celery

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

Elasticsearch平均日期直方图桶

我在ElasticSearch中有一堆索引的文档,我需要获取以下数据:

对于每个月,获取当月每个工作日的平均文档(或者如果不可能,则使用20天作为默认值).

我已经使用聚合将我的数据汇总到了几个桶中date histogram.我尝试嵌套stats存储桶,但此聚合使用从文档字段中提取的数据,而不是从父存储桶中提取的数据.

这是我目前的查询:

{
    "query": {
        "match_all": {}
    },
    "aggs": {
        "docs_per_month": {
            "date_histogram": {
                "field": "created_date",
                "interval": "month",
                "min_doc_count": 0
            }
            "aggs": {
                '???': '???'
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

为了使我的问题更清楚,我需要的是:

  • 获取为该月创建的文档总数(由于date_histogram聚合已经完成)
  • 获取当月的工作日数
  • 将第一个除以第二个.

facets elasticsearch date-histogram

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

如何知道数据库何时在 Django 中准备就绪?

一旦数据库在 Django 中准备就绪,我就需要做一些事情。具体来说,我需要对来自 db 的值执行一些计算并将结果填充到缓存中。

从 django 1.7 开始,应用程序注册表可以很容易地知道应用程序或模型何时可以使用。你可以写:

from django.apps import apps

if apps.ready:
    do_some_stuff()
Run Code Online (Sandbox Code Playgroud)

但是我发现模型准备好了并不意味着可以查询数据库。Django 文档 说:

尽管您可以如上所述访问模型类,但请避免在 ready() 实现中与数据库交互

我试着去参加这个post_migrate活动。如果我正在重建数据库(例如启动测试套件),它会起作用,但如果我只是使用现有数据库(例如使用runserver),则不会。

有没有办法知道数据库在 Django >= 1.7 中是否完全可用?

database django postgresql django-signals django-orm

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

在Cycle.js中渲染所有dom后运行js代码

我想使用Foundation的reveal插件在Cycle.js应用程序中显示一个很好的模态.

在玩了几个小时的Webpack和它的配置后,我想出了如何将基础的js导入我的(es6)应用程序.

但是,由于我正在处理虚拟dom,当基础的js初始化时,实际的html不存在.

这是我的组件代码:

import Rx from 'rx';
import {div} from '@cycle/dom';

import $ from 'jquery';
import {foundation} from 'foundation-sites/js/foundation.core';
import 'foundation-sites/js/foundation.util.keyboard';
import 'foundation-sites/js/foundation.util.box';
import 'foundation-sites/js/foundation.util.triggers';
import 'foundation-sites/js/foundation.util.mediaQuery';
import 'foundation-sites/js/foundation.util.motion';
import 'foundation-sites/js/foundation.reveal';

require('./styles/configuration-modal.scss');

function ConfigurationModal(sources) {

    const values$ = sources.props$;

    const vtree$ = Rx.Observable.just(1).map(() => {
        return div(
            '#config-modal.reveal',
            {attributes: {
                'data-reveal': ''
            }},
            ['hello']
        );
    });

    return {
        DOM: vtree$,
        values$
    };
}

$(function() {
    $.fn.foundation = foundation;
    $(document).foundation();
});

export default ConfigurationModal;
Run Code Online (Sandbox Code Playgroud)

我的main.js:

import Rx from 'rx';
import …
Run Code Online (Sandbox Code Playgroud)

reactive-programming zurb-foundation ecmascript-6 virtual-dom cyclejs

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

在 travis build 中选择正确的 postgresql 版本

我使用 TravisCi 来构建和测试基于 Django 的项目。

构建失败的 db 相关错误似乎与所使用的错误 postgres 版本有关。但是,按照 Travis doc 设置 Postgres 的版本似乎没有按预期工作。

这是我的.travis.yml文件:

language: python
python:
  - "3.6"
addons:
  - postgresql: "9.6"
before_install:
 - cd $TRAVIS_BUILD_DIR/src
install:
 - npm install -g sass
 - make init
before_script:
  - psql --version
  - psql -c 'SELECT version();' -U postgres
  - psql -c "CREATE USER aides WITH CREATEDB PASSWORD 'aides';" -U postgres
script:
 - make checkstyle
 - make test
Run Code Online (Sandbox Code Playgroud)

这是困扰我的构建部分:

$ psql --version
psql (PostgreSQL) 9.6.6

$ psql -c …
Run Code Online (Sandbox Code Playgroud)

django postgresql travis-ci

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