小编run*_*ace的帖子

将目录添加到 Django 搜索路径以进行测试

我正在为各种自定义发行版使用单个 django。我找到了一个解决方案,其中每个发行版独有的应用程序都位于 django 项目文件夹之外(我们称之为DIR/),并DIR/使用如何将所有 django 应用程序保留在特定文件夹中 (添加到sys.path)将其添加到 Django 路径 之外。路径解决方案)

该项目运行,但是现在它没有发现测试。在将应用程序移出 Django 项目文件夹之前,我可以简单地运行所有测试:

manage.py test
Run Code Online (Sandbox Code Playgroud)

但是,现在没有找到测试。除了添加DIR/到 settings.py 之外,我还尝试将其添加到 manage.py 并且没有帮助。通过阅读 django 文档,我发现我可以指定一个这样的模块:

manage.py test app_name.tests
Run Code Online (Sandbox Code Playgroud)

以上工作,但对许多应用程序是不切实际的。如何添加用于搜索测试的路径?

我读了这个,但它只描述了问题,而不是解决方案: Django test runner not found tests

请求我的项目结构:

somefolder/
  |-- dist/
  |     |-- dist1/apps/
  |     |       |---- app11/
  |     |       '---- app12/
  |     |
  |     '-- dist2/apps/
  |             |---- app21/
  |             '---- app22/
  |-- src/
        |-- manage.py
        |-- project/settings.py
        |-- appA/
        '-- appB/
Run Code Online (Sandbox Code Playgroud)

由于询问已经发现这有效(不理想): …

python django unit-testing

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

Django Cookie 前缀以通过 securityheaders.com

securityheaders.com 使我的配置失败并出现以下错误:

Set-Cookie  There is no Cookie Prefix on this cookie.
Run Code Online (Sandbox Code Playgroud)

这是 cookie 的值:

Set-Cookie  sessionid=123456789123456789123456789; expires=Thu, 12 Sep 2019 06:51:38 GMT; HttpOnly; Max-Age=1209600; Path=/; SameSite=Strict; Secure
Run Code Online (Sandbox Code Playgroud)

我试图在 settings.py 中添加 cookie 前缀:

CSRF_COOKIE_NAME = '__Secure-csrftoken'
Run Code Online (Sandbox Code Playgroud)

但它似乎是一个不同的参数。我已经搜索了文档,这就是我能找到的所有内容,似乎不适用。

securityheaders.com 在 cookie 前缀上声明它需要以__Secure-__Host-

security django cookies

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

列表理解/生成器中的海象赋值表达式

我试图将 的每个元素传递foo_list到一个函数中,并获取输出为Truthyexpensive_call的所有项目的列表。expensive_call我正在尝试用列表理解来做到这一点,这可能吗?就像是:

像这样的东西:

 result_list = [y := expensive_call(x) for x in foo_list if y]
Run Code Online (Sandbox Code Playgroud)

或者....

 result_list = [y for x in foo_list if y := expensive_call(x)]
Run Code Online (Sandbox Code Playgroud)

注意:这不是一个解决方案,因为它调用了两次昂贵的调用:

 result_list = [expensive_call(x) for x in foo_list if expensive_call(x)]
Run Code Online (Sandbox Code Playgroud)

在有人建议不要使用列表理解之前,我知道可以这样做:

result_list = []
for x in foo_list:
   result = expensive_call(x)
   result and result_list.append(result)
Run Code Online (Sandbox Code Playgroud)

python

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

表单中的 Django Media 资源,如何延迟/异步 JS 资源?

官方文档解释了如何自动为某些小部件添加资产。,从他们的示例:

from django import forms

class CalendarWidget(forms.TextInput):
    class Media:
        css = {
            'all': ('pretty.css',)
        }
        js = ('animations.js', 'actions.js')
Run Code Online (Sandbox Code Playgroud)

它没有描述的是如何使 JS 资源延迟或异步加载,例如

<script defer src="https://myserver.com/static/animations.js">/script>
Run Code Online (Sandbox Code Playgroud)

如何添加deferorasync属性?

django django-forms django-widget

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

JavaScript:引用匿名类静态变量

遵循有关 Web 组件的 google 教程,我喜欢作者在customElements.define函数调用中使用匿名类的方式,因为它在创建立即调用的函数调用时避免了更多括号。

我使用静态类变量来存储模板元素,因此每次实例化自定义标记时都不会查询它。

问题是connectedCallback我不知道如何引用类名,因为它是一个匿名函数。在 python 中可以type(self),但我的研究表明,typeof this由于原型魔法,这在 JS 中不起作用。

window.customElements.define('my-uploader', class extends HTMLElement {
    static template = document.getElementById("TEMPLATE_UPLOADER");

    constructor() {
        super(); // always call super() first
    }

    /** Custom Component Reactions **/
    connectedCallback() {
        let shadowRoot = this.attachShadow({mode: "open"});
        shadowRoot.appendChild(document.importNode(ANONYMOUS_NAME.template, true));  // <--- How to refer to the class name here?
    }
Run Code Online (Sandbox Code Playgroud)

如何引用ANONYMOUS_NAME中的类' connectedCallback

javascript web-component

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

使用 zoneinfo 将感知日期时间的时区转换为 UTC(从 pytz 迁移)

我使用的是Python 3.8,所以我使用https://pypi.org/project/backports.zoneinfo/来获取zoneinfo。Django 不赞成使用,所以我正在执行从到 的pytz更改pytzzoneinfo

有了 pytz 就可以了from pytz import UTCpython 文档从中获取它datetime.timezone.utc(并且这没有localize方法)。

如何执行与此等效的操作: pytz.UTC.localize(my_datetime, is_dst=None) 使用 zoneinfo?

python timezone datetime zoneinfo

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

JavaScript 如何使用 event.waitUntil() 等待异步函数调用

在学习 JavaScript 时,它推荐使用async/await因为它比 更易读.then,我同意。不幸的是,当谈到 PWA 服务人员时,async似乎被遗忘了。

尝试为具有异步样式的 Service Worker 创建安装函数时:

const cacheVersion = "v1";
const cacheAssets = [
    "/",
    "/index.html",
    "/static/img/logo.svg",
];

async function install(version, assets) {
    const cache = await caches.open(version);
    console.log("Doing stuff....");
}

self.addEventListener("install", (event) => {
    console.log("Service Worker INSTALL START");
    event.waitUntil(install, cacheVersion, cacheAssets); // <--- Does not call install()
    console.log("Service Worker INSTALL COMPLETE");
});
Run Code Online (Sandbox Code Playgroud)

install函数永远不会运行。如果我改变这一行:

event.waitUntil(install, cacheVersion, cacheAssets);
Run Code Online (Sandbox Code Playgroud)

install(cacheVersion, cacheAssets);
Run Code Online (Sandbox Code Playgroud)

然后线路运行,但没有等待,导致问题。

如何使用event.waitUntil调用异步函数并等待它?

对我event.waitUntil …

javascript async-await progressive-web-apps

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

JavaScript:如何做出永远不会解决或拒绝的承诺

我在用:

 await Promise.race([promise1, promise2]);
Run Code Online (Sandbox Code Playgroud)

逻辑是如果promise1在 5 秒内没有解决/拒绝,那么promise2也许能够解决。因此,在延迟promise2尝试执行其操作后,如果失败,我希望promise2返回一个Promise永远无法解决的问题,以便一切都取决于等待promise1

我试过

async function promise2(timeout=5000) {
    await new Promise(resolve => setTimeout(resolve, timeout));
    if (didStuffAndOK())  {
        return "OK"
    }
    return new Promise( () => {} )
}
Run Code Online (Sandbox Code Playgroud)

return new Promise( () => {} )似乎被解释为承诺被拒绝而不是从未得到解决。

如何做出一个空洞的承诺(不是在现实生活中,而是在 JavaScript 中)?

javascript promise

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

为什么::before伪元素出现在元素之上?

根据我的理解,::before应该出现在元素下方,并且::after应该出现在元素上方(就 z-index 而言)。

在下面的示例中,当鼠标悬停在按钮上时,我尝试使背景颜色变暗(而不是前景色)。即使我用过::before它仍然出现在前面。为什么?我知道我可以用 来修复它z-index,但是根据这个有 6 个赞成票的评论

我认为最好使用 :before ,这样你就可以得到正确的堆叠顺序,而无需使用 z-index 。

我不应该这样做,而且顺序应该是正确的?

.parent {
  --my-color: red;  
}
button {
    color: blue;
    background-color: var(--my-color);
    padding: 8px 16px;
    position: relative;
}
button:hover {    
    background-color: transparent;
}
button:hover::before {
    display: block;
    content: "";
    position: absolute;
    top: 0; left: 0; width: 50%; height: 100%; /* width is 50% for debugging (can see whats below) */
    background-color: var(--my-color);
    filter: brightness(80%);
}
Run Code Online (Sandbox Code Playgroud)
<div class="parent">
    <button …
Run Code Online (Sandbox Code Playgroud)

css z-index pseudo-element

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