问题标签 [django-1.9]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2711 浏览

python - 为什么 Django 1.9 将设置和 URL 中的 tuples () 替换为列表 []?

我有点好奇为什么 Django 1.9 用设置、URL 和其他配置文件中的列表 [] 替换元组 ()

我刚刚升级到 Django 1.9 并注意到了这些变化。它们背后的逻辑是什么?

网址.py

由于这些变化,有什么不同吗?

0 投票
1 回答
1289 浏览

django - Django 1.9“通用密码验证器”——奇怪的行为

我正在尝试用我自己的相同版本替换内置common-passwords.txt.gz文件,该文件应该包含前 1,000 个常用密码,其中包含我所在国家/地区的前 10,000 个常用密码,但我遇到了一些相当奇怪的行为。

  1. 首先,我直接将 Django 的common-passwords.txt.gz文件(4KB)替换为我自己的包含我的 .txt 文件,该文件具有与 Django 相同的 utf-8 编码(输入为 34KB),然后重新启动测试服务器。将用户密码更改为“密码”时,它不会像使用 Django 的通用密码文件那样引发预期的错误。

    内置密码列表和我的新密码列表的第一行都开始了123456password12345678qwerty123456789...,所以它显然应该这样做。

    当我将一些额外的密码附加到他们的通用密码文件时,它似乎可以正常工作,如果我尝试将它们用作密码,则会引发错误,所以我认为它不会缓存在某处或类似的地方。

    通用密码列表或功能是否有某种内置文件大小限制gzip.open(password_list_path).read().decode('utf-8').splitlines()

  2. 其次,试图弄清楚上述情况导致我遇到了一个奇怪的错误。使用 Django 的内置common-passwords.txt.gz(其中第一行开始123456password12345678qwerty123456789...)成功地引发了“password”和“password1”的验证错误,但不是“password12”或“password123”!

    当我读到它时,Django 验证代码基本上会检查公共密码文件中的每一行是否提交的密码is in,并且我找不到任何代码可以将超过一定长度的密码从验证中排除。我错过了什么还是这是一个错误?

Django 1.9 中的“常用密码验证”功能见\venv\Lib\site-packages\django\contrib\auth\password_validation.py,相关类如下:

0 投票
1 回答
383 浏览

python - 在 Django 中请求排队的图片

我正在建立一个系统,其中一个用户将图像发布到 Django 服务器,N 个用户将分别查看已发布图像的子集。我似乎无法在 Django 中找到完成此任务的排队机制。最接近的是使用最新的过滤器(),但这只会一遍又一遍地发送最新的图像,直到新的图像出现。任务队列无济于事,因为这不是周期性任务,它仅在用户请求下一张图片时发生。我有一个 Viewset 用于上传图像,另一个 Viewset 用于获取。我考虑过使用python线程安全队列。unloader 会将上传的图片 pk 入队,当多个用户请求新图片时,

但是,我仍然觉得这里可能存在一些竞争条件。我读到 Django 是线程安全的,但应用程序可能变得非线程安全。此外,队列需要是全局的才能在视图集之间共享,这感觉像是不好的做法。有没有更好更安全的方法来解决这个问题?

编辑

这是有关我要完成的工作并为其提供一些背景的更多详细信息。发布图片的用户是连接到无人机的智能手机。它将以恒定的时间间隔将天空中的图片发布到 Django 服务器。因为会有很多图片进来。我希望能够让多个用户分担查看所有图片的工作量(即没有两个用户应该看到同一张图片)。因此,当用户联系 Django 服务器时,说“给我下一张你拥有的照片或给我你拥有的下 3 张照片等等......”。但是,多个用户可能会同时这么说。所以 Django 需要对图片保持某种排序,这就是为什么我说 Queue 并弄清楚如何将它传递给用户,如果他们不止一个人同时询问。因此,一个 Viewset 是供智能手机发布照片的,另一个是供用户索取照片的。我正在寻找一种线程安全的方法来做到这一点。到目前为止,我唯一的想法是使用 Python 的线程安全队列并使其成为 Viewsets 的全局队列。但是,我觉得这是不好的做法,我不确定 Django 是否是线程安全的。

0 投票
2 回答
2406 浏览

python - Django 调试工具栏安装(Django 1.9)

我在 virtualenv (Windows) 中使用 python 3.5.1 和 django 1.9.4。我正在尝试添加 django-debug-toolbar,但在启动服务器时出现错误。

我在installed_apps 中添加了“django_debug”,还在middleware_classes 中添加了“debug_toolbar.middleware.DebugToolbarMiddleware”。

点冻结日志:

运行服务器:

ImportError:没有名为“django_debug”的模块

0 投票
1 回答
1155 浏览

javascript - 动态添加的 Django FormSet 数据未发布

我正在使用 JavaScript/jQuery 通过将表单动态添加到 Django FormSet 来修改 FormSet。例如,我从一个询问用户教育的表格开始。然后用户可以按下添加按钮添加相同的表格来输入关于中学教育(例如研究生院)的信息。表单被添加到浏览器中,我可以输入数据,但是当我发布数据时,它只在 FormSet 中显示一个表单,其中包含浏览器中第二个表单的信息。

发布数据

然后我收到一条错误消息:

ValidationError: [u'ManagementForm data is missing or has been tampered with'].

以下是相关的代码:

视图.py

(在这里,我尝试了使用和不form.has_changed()使用相同结果的作品。)

模板 build_profile.html

build_profile.js(动态添加表单到 FormSet 的代码)

我究竟做错了什么?

0 投票
1 回答
1134 浏览

django - 如何将用户注册表单添加到我的 django 应用程序?

我已经能够创建一个表单,用户可以按照本教程输入他们的用户名和密码。

我希望能够通过以下方式创建用户帐户:按下按钮将用户转移到另一个页面,他们将在其中填写表格并将详细信息保存到数据库中。我还想确保没有重复用户名。但是,我不知道如何编码。我对 django 很陌生,因此我为什么要苦苦挣扎。

如果这有所作为,我正在使用 Windows 和 atom 代码编辑器。请有人帮我编码。

0 投票
3 回答
3348 浏览

python - 导入错误:没有名为 django_orm 的模块

CredentialsFieldoauth2client.django_orm导入时,我得到:

我已经安装了先决条件:django-ormpython-oauth2

0 投票
1 回答
2760 浏览

python - Django 1.9:CELERY_IMPORTS 不起作用

我在 celery 中苦苦挣扎,没有按照它的文档要求做:我有一个 DJango 1.9 应用程序,我正在运行 celery 3.1.20,我有以下内容:

我的应用程序/芹菜.py:

myapp/jobs/tasks.py:

但是,我两种都试过了:

我的应用程序/settings.py:

我的应用程序/芹菜.py:

也没有正确注册我的任务。一旦我手动导入定义任务的模块,这些任务只会出现在 app.tasks 中,因此当我使用任务以确保它已加载时,我不得不做一个丑陋的本地导入黑客。

在 Django 外壳中:

有什么想法吗?在我自己导入模块之前,它不会加载任务。

提前致谢。

0 投票
1 回答
2382 浏览

python - Django 1.9 自定义日志处理程序类:“无法配置处理程序'mail_admins':尚未加载应用程序。”

我正在将现有的 Django 应用程序从 1.8 升级到 1.9(特别是 1.9.4)。我使用自定义日志处理程序通过第三方电子邮件提供商 (SendGrid) 发送管理错误电子邮件。

执行runserver命令时,会生成以下回溯:

以下是自定义日志记录类的相关代码片段:

settings.LOGGING 中的自定义处理程序:

coredev/utils/logging.py

coredev/tasks.py(相关片段)

我已经查看了 Django 文档(https://docs.djangoproject.com/en/1.9/topics/logging/),以及 StackOverflow 和 Google,但我还没有找到解决方案。我知道在所有应用程序都“准备好”之前不要导入模型,但我不相信我在这段代码中导入了任何模型,所以我不确定为什么会发生这个错误。

我的代码的哪一部分导致了这个问题?我需要采取哪些步骤来使我的自定义日志记录处理程序与 Django 1.9 的 AppRegistry 兼容;具体来说,这样我就不再收到“应用程序尚未加载”错误?

0 投票
2 回答
469 浏览

python - Django 1.9 日期时间过滤器

我正在尝试过滤包含以下字段的模型:

我正在使用语法

但是,这会返回多个唯一的 TEMP_START 值。我认为这是由于我的数据存储时没有时区。但是,我已经在我的 settings.py 文件中设置了:

我不确定为什么此过滤器语句会返回其他唯一的日期时间对象值。我知道“__date”过滤器是 Django 1.9 的新功能。这只是一个错误吗?