问题标签 [django-1.11]
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.11 - 嵌套的 OuterRef 用法
我最近将 Django 更新到最先进的版本 1.11rc1,因为那里引入了子查询功能。
现在,假设这是我的用例:我有以下模型 - 用户、组和权限。所以,我有一些我可以分组的用户(例如管理员组)和权限 - 这是可以做一些事情的用户列表(例如,我有用户 A、用户 B 和可以创建新用户的管理员)。我现在要做的是有效地显示所有权限,其中包含许多用户。所以换句话说,我想创建一个 QuerySet,它会返回有关权限的所有信息并计算每个权限的用户数。解决此问题的第一个显而易见的方法是创建一个get_user_count
Permission 模型的方法,它将从我的 ManyToMany 关系中返回所有用户,但这将需要每个 Permission 至少 1 个额外的查询,这对我来说是不可接受的,因为我计划拥有很多 Permission。这是我想使用的地方Subquery
。
所以,澄清一下 - 这是models.py:
我想创建一个查询集,它将返回所有权限,里面有很多用户。举例来说,假设我只想包含属于我的组的用户 - 所以我会有这样的事情:
这里的问题是我OuterRef
无法解决“子查询的过滤器过滤器”中使用的问题:
虽然,当我使用另一个子查询来获取组时:
我在第一行得到一个错误:
其余的行无关紧要,对错误没有影响。奇怪的是,文档中出现了完全相同的语法:https ://docs.djangoproject.com/en/dev/ref/models/expressions/#django.db.models.OuterRef
问题是:我做错了什么?或者如何以其他方式(尽管有效)实现我想要的?
django - 从 django 1.10.6 升级到 1.11 runserver 给出异常
在运行服务器时将 django 从 1.10.6 升级到 1.11 后,我遇到了以下异常。
models.Q 是从 tree.Node 继承的,并且在这两个版本中都没有可能破坏 Q 使用的重大变化。
django-forms - Django 1.11 模板未正确呈现与 django 1.4 一起使用的 MultipleChoiceField
我正在尝试将现有应用程序从 1.4 版升级到 1.11 版。我有一个问题,MultipleChoiceField 被存储在数据库中,但模板没有将它们呈现为被检查。
模型.py
表格.py
当我使用 manage.py shell 运行它时,我得到了正确的 HTML 输出
打印表格1
您可以看到它在代码中具有选中的属性。
模板
选定的复选框不会在 UI 上呈现。
django - 通过 Django 中的相同中间模型与同一模型的两个多对多关系
我的模型:
如上所示,Person 模型与自身有两个 m2m 关系:学生和父母。每个人在同一张 Person 表上可能有很多学生,也可能有很多父母。
但是,Django 不允许这样做:
我不明白为什么 Django 拒绝这样做,尤其是因为它不使用自定义中间表保存或验证 m2m 字段。另一方面,我只需要使用这些字段来更轻松地检索相关模型。例子:
所以我的问题是,1)在 Django1.11 中有没有办法解决这个问题(通过配置等使这样的 2 m2m 字段成为可能)?2)有没有办法通过其他方式使只读场景发生这种情况?
使用中介模型的代理会欺骗 django 使 1) 发生吗?使用自定义管理器会帮助实现 2)吗?什么是最短、最整洁的路径?
注意:我知道之前有人问过类似的问题,但是这有点不同而且有点老了。
python - 获取具有对模型 Django 的向后引用的过滤项的数量
我已经玩了几个小时没有找到解决方案。
我有以下型号:
然后我过滤项目和与该项目相关的类别:
现在我想获取具有类别的项目的数量并将该数字保存在类别中的字段中annotate
我该怎么做?
python - Django 模板关键字 `choice_value` 在 1.11 中不再起作用
模板中有多个复选框,如果渲染中包含值,则默认情况下将选中该选项。它适用于 1.10。
表格.py:
模板:
视图.py:
当我升级到 Django 1.11 时,{{ p.name }}
什么{{ p.choice_value }}
都不返回。我知道 1.11 已经删除choice_value
了,但是如何解决这个问题呢?
1.10 https://docs.djangoproject.com/en/1.10/_modules/django/forms/widgets/
1.11 https://docs.djangoproject.com/en/1.11/_modules/django/forms/widgets/
django - Django内置请求库?
我知道直到几年前 Django 还没有,因为这里有几个关于这个主题的问题,但它们都至少有两年的历史
他们大多推荐使用 python-request 或 urllib
我的问题是,Django 现在默认包含这个吗?向另一台服务器发出 POST/GET 请求的模块,还是仍然需要安装外部库?
这主要是为了避免在使用 API 时绕过跨域策略