问题标签 [django-2.2]

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 回答
86 浏览

python-3.x - Django,无法保存表单

我尝试将应用程序从较旧的 1.11 Django 重写为最新的 2.2。但是当我点击保存按钮时。空无一物。没有错误,没有保存的表格,什么也没有发生。

模型.py

表格.py

视图.py

创建.html

博客.js

我忘记了什么?那天我一直在寻找这个错误,但不幸的是我找不到它。

0 投票
1 回答
1822 浏览

python - Select a valid choice. ["objects"] is not one of the available choices. in Django

I'm going to create a form where the user can select any number of objects from the options.(MultipleChoiceField)

Here are my files:

When I click on the submit button (for example select object 1 and 2), I get this error:

Hint: each user send request to us that contain explanation and days that he can do something. So, Each user can select any day that he want.

0 投票
1 回答
63 浏览

django - 成功重定向到配置文件表单会在 /profile/join() 处提供 TypeError - 参数必须是 str 或 bytes,而不是“NoneType”

我有一个名为 UserProfile 的扩展用户模型,更新视图使用 SuccessMessageMixin 重定向成功更新。问题是 django 代码中的某些内容试图将未设置的 var(路径)加入路径,我不知道为什么。

user_profile/views.py

提交带有更改数据的表单时的堆栈跟踪(数据确实得到了更新,所以这纯粹是一个重新显示问题)。

我错过了什么?根据文档,设置success_url就足够了,并且只需要“/profile/”链接,因为没有人可以维护另一个用户配置文件(即url中不需要pk、slug等)

0 投票
1 回答
302 浏览

python - 循环内使用多个 QuerySet 的 Django prefetch_related 和性能优化

实际上,我在循环中有多个查询,但我对此并不满意。我想知道是否有人具有prefetch_related其他 Django 查询构造优化方面的专业知识,能够在这个问题上为我提供帮助。

我开始:

然后,我从某个日期“ start_date”开始,在所有日子里开始循环:

然后我在这个循环中遍历上面的过滤子集users

好的,首先,有没有办法优化这个?

是什么让一些铁杆 Django 人失去了他们的束缚,我在另一个循环中完成了上述所有操作!

在最后一个循环中,我执行了最后一个查询过滤器:

我这样做是因为我觉得我需要准备好过滤用户、调查和日期变量......

我已经开始考虑 prefetch_related 和 Prefetch 对象。我已经查阅了文档,但我似乎无法理解如何将其应用于我的情况。

实际上,查询花费的时间太长了。对于平均 1000 名用户、4 次调查和大约 30 天,此查询需要 1 分钟才能完成。

理想情况下,我想剃掉 50%。再好不过了,我会非常高兴。我还希望减少数据库服务器上的负载,因为此查询可能在不同的组织中运行多次。

任何有关如何在循环内的循环内组织此类可怕查询的专家提示将不胜感激!

完整的“浓缩”最小可行片段:

********* 附录:*********

因此,除了@dirkgroten 的回答,我目前正在使用:

因为我(“认为我”)需要对每个 QuerySet 进行调查细分。

我还有其他可用的优化吗?

0 投票
2 回答
1424 浏览

html - Django 嵌套视图

我正在开发一个内部应用程序,我希望能够嵌套我的视图以保持一切都井井有条。我计划通过将页面的不同部分保存在他们自己的 HTML 文件中并使用他们自己的视图(单独的侧边栏和导航栏、单独的图表等)来做到这一点。

视图.py

索引.html

边栏.html

我知道仅使用{% include 'data_logger/sidebar.html' %}它只是加载 HTML 并绕过SelectorSidebar,我如何通过 View 引导它?我想要一个解决方案,它允许我访问从简单的名称列表到输入 D3 图表的相对较大的数据集的任何内容。

解决方案

这就是我最终使用的:

索引.html

_sidebarSelectorSidebar 的 URL在哪里:

0 投票
1 回答
301 浏览

django - Django:用户的对等身份验证失败

我已经有一个使用 sqlite3 的正常运行的网站,但我更喜欢用一个立即使用 PostgreSQL/PostGIS 的空项目来重新启动我的网站项目。在配置结束时,settings.py我将进行转储以将所有 sqlite3 表上传到新数据库中。旧项目的任何模型都不会修改到这个新项目中。新旧项目之间的区别仅在于 DBMS。

这是settings.py

在此之后,我尝试使用它来测试服务器,python3 manage.py runserver但我看到了以下错误消息:

django.db.utils.OperationalError: FATAL: Peer authentication failed for user "db_user"

我确定NAMEUSERPASSWORD是正确的,数据库在 localhost 中。几周前,我创建了另一个简单的项目,以使用相同的设置学习 GeoDjango,并且该网站运行良好。

0 投票
1 回答
35 浏览

python - 通过注释值进行约束过滤的高级 ORM 用法

我已经构建了以下查询/(IES):

将生成的 QuerySet 中的每个结果快速打印为:

...输出数据如下:

眼尖的您可能会注意到最后两条记录在“用户”和“调查”键上是伪重复的,但在其他任何键上都没有。

我的问题是:我到底如何从这个记录集中删除记录(使用我构建的Django ORM查询或以标准的pythonic方式),其中“调查”和“用户”键匹配 - 只保留最新的根据“日期”记录......所以离开我:

预期结果:

我尝试过的事情

我在想也许利用这样的东西:

0 投票
1 回答
871 浏览

python - 使用 Python 3.7 contextvars 在 Django 视图之间传递状态

我正在使用 Django 2.2 和 Python 3.7 构建单个数据库/共享模式多租户应用程序。

我正在尝试使用新的contextvarsapiOrganization在视图之间共享租户状态 (an)。

我在这样的自定义中间件中设置状态:

我通过让我的应用程序的模型从TenantAwareModel这样的继承来使用这种状态:

.tenant_objects...在我的应用程序中,业务逻辑可以使用模型类而不是检索查询集.objects...

我遇到的问题是它并不总是有效 - 特别是在这些情况下:

  1. login()调用后的登录视图中,中间件运行,我可以看到租户设置正确。但是,当我从登录视图重定向到主视图时,状态(最初)再次为空,并且似乎在主视图执行后正确设置。如果我重新加载主视图,一切正常。

  2. 如果我注销然后以其他用户身份再次登录,则会保留前一个用户的状态,直到重新加载页面。这似乎与上一期有关,因为状态似乎落后了(因为没有更好的词)。

  3. 我使用 Celeryshared_tasks进行加工。我必须手动将租户传递给这些,因为它们不会获取上下文。

问题:

  1. 我这样做正确吗?

  2. 我是否需要在每个模块中以某种方式手动重新加载状态?

沮丧,因为我几乎找不到这样做的例子,也很少讨论contextvars. 我试图避免到处手动传递租户或使用thread.locals.

谢谢。

0 投票
1 回答
60 浏览

python - 保存新对象的所有内容,除了 Django 中的 ManyToMany 字段

我想用ManyToMany关系保存对象。当我提交表单时,除了有ManyToMany关系的字段之外,所有的东西都保存了。

这些是我的文件:

这些代码有什么问题?

0 投票
1 回答
327 浏览

python - 在添加对象中使用 ManyToMany 字段 raise 需要为字段“id”设置一个值,然后才能使用这种多对多关系

我有两个模型:ExamQuestion。每个问题都有在每次考试中自动计算的分数。

所以这是我的文件:

我确实为此定制了模型save()方法:Exam

但我得到了这个错误:

我怎样才能做到这一点而不会引发任何错误?

我的目标:对于每一个新创建的考试,计算这个考试的问题点并将它们放入模型points领域Exam