问题标签 [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.
python - 为什么 Django 1.9 将设置和 URL 中的 tuples () 替换为列表 []?
我有点好奇为什么 Django 1.9 用设置、URL 和其他配置文件中的列表 [] 替换元组 ()
我刚刚升级到 Django 1.9 并注意到了这些变化。它们背后的逻辑是什么?
网址.py
由于这些变化,有什么不同吗?
django - Django 1.9“通用密码验证器”——奇怪的行为
我正在尝试用我自己的相同版本替换内置common-passwords.txt.gz
文件,该文件应该包含前 1,000 个常用密码,其中包含我所在国家/地区的前 10,000 个常用密码,但我遇到了一些相当奇怪的行为。
首先,我直接将 Django 的
common-passwords.txt.gz
文件(4KB)替换为我自己的包含我的 .txt 文件,该文件具有与 Django 相同的 utf-8 编码(输入为 34KB),然后重新启动测试服务器。将用户密码更改为“密码”时,它不会像使用 Django 的通用密码文件那样引发预期的错误。内置密码列表和我的新密码列表的第一行都开始了
123456password12345678qwerty123456789...
,所以它显然应该这样做。当我将一些额外的密码附加到他们的通用密码文件时,它似乎可以正常工作,如果我尝试将它们用作密码,则会引发错误,所以我认为它不会缓存在某处或类似的地方。
通用密码列表或功能是否有某种内置文件大小限制
gzip.open(password_list_path).read().decode('utf-8').splitlines()
?其次,试图弄清楚上述情况导致我遇到了一个奇怪的错误。使用 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
,相关类如下:
python - 在 Django 中请求排队的图片
我正在建立一个系统,其中一个用户将图像发布到 Django 服务器,N 个用户将分别查看已发布图像的子集。我似乎无法在 Django 中找到完成此任务的排队机制。最接近的是使用最新的过滤器(),但这只会一遍又一遍地发送最新的图像,直到新的图像出现。任务队列无济于事,因为这不是周期性任务,它仅在用户请求下一张图片时发生。我有一个 Viewset 用于上传图像,另一个 Viewset 用于获取。我考虑过使用python线程安全队列。unloader 会将上传的图片 pk 入队,当多个用户请求新图片时,
但是,我仍然觉得这里可能存在一些竞争条件。我读到 Django 是线程安全的,但应用程序可能变得非线程安全。此外,队列需要是全局的才能在视图集之间共享,这感觉像是不好的做法。有没有更好更安全的方法来解决这个问题?
编辑
这是有关我要完成的工作并为其提供一些背景的更多详细信息。发布图片的用户是连接到无人机的智能手机。它将以恒定的时间间隔将天空中的图片发布到 Django 服务器。因为会有很多图片进来。我希望能够让多个用户分担查看所有图片的工作量(即没有两个用户应该看到同一张图片)。因此,当用户联系 Django 服务器时,说“给我下一张你拥有的照片或给我你拥有的下 3 张照片等等......”。但是,多个用户可能会同时这么说。所以 Django 需要对图片保持某种排序,这就是为什么我说 Queue 并弄清楚如何将它传递给用户,如果他们不止一个人同时询问。因此,一个 Viewset 是供智能手机发布照片的,另一个是供用户索取照片的。我正在寻找一种线程安全的方法来做到这一点。到目前为止,我唯一的想法是使用 Python 的线程安全队列并使其成为 Viewsets 的全局队列。但是,我觉得这是不好的做法,我不确定 Django 是否是线程安全的。
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”的模块
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 的代码)
我究竟做错了什么?
django - 如何将用户注册表单添加到我的 django 应用程序?
我已经能够创建一个表单,用户可以按照本教程输入他们的用户名和密码。
我希望能够通过以下方式创建用户帐户:按下按钮将用户转移到另一个页面,他们将在其中填写表格并将详细信息保存到数据库中。我还想确保没有重复用户名。但是,我不知道如何编码。我对 django 很陌生,因此我为什么要苦苦挣扎。
如果这有所作为,我正在使用 Windows 和 atom 代码编辑器。请有人帮我编码。
python - 导入错误:没有名为 django_orm 的模块
CredentialsField
从oauth2client.django_orm导入时,我得到:
我已经安装了先决条件:django-orm和python-oauth2。
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 外壳中:
有什么想法吗?在我自己导入模块之前,它不会加载任务。
提前致谢。
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 兼容;具体来说,这样我就不再收到“应用程序尚未加载”错误?
python - Django 1.9 日期时间过滤器
我正在尝试过滤包含以下字段的模型:
我正在使用语法
但是,这会返回多个唯一的 TEMP_START 值。我认为这是由于我的数据存储时没有时区。但是,我已经在我的 settings.py 文件中设置了:
我不确定为什么此过滤器语句会返回其他唯一的日期时间对象值。我知道“__date”过滤器是 Django 1.9 的新功能。这只是一个错误吗?