问题标签 [django-models]

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 投票
3 回答
1865 浏览

python - 用 Django 实现配置应用程序的最佳方法是什么?

我需要为基于 Django 的应用程序编写一种配置注册表。

要求:

  1. 最有可能param_nameparam_value结构
  2. 可通过管理界面编辑
  3. 必须使用syncdb。如何处理其他应用程序依赖配置模型并且模型本身尚未在数据库中初始化的情况?假设我想拥有可配置的模型字段属性,即默认值设置?

任何想法或建议将不胜感激。

0 投票
2 回答
228 浏览

django - 围绕另一个模型的查询集平分查询集

我正在编写一个用户驱动的应用程序,其中包含多个区域。我希望允许用户自定义他们的消息设置,以便他们只收到有关他们关心的部分和操作的电子邮件。我制定了以下内容Class

这将由名为 的方法使用,该方法get_users(key, default)返回用户列表。例如,如果我询问在 a 上被key="new_post", default=False替换的用户列表,我应该得到一个用户列表,其中他们有一个 EmailSetting,该键的值为 True。这很简单,因为我可以只使用 EmailSetting 模型。

如果默认值为 True,则事情似乎更难。我从来没有做过比模型的基本查找更复杂的事情,所以我需要帮助。

从完整的用户列表中,我需要删除带有 False EmailSetting 的用户。没有在 EmailSetting 上进行另一个查询以查找 False 条目并迭代地将它们从第一个查询集中删除,我不知道该怎么做......

......但必须有另一种方式,因为那很臭。

0 投票
1 回答
400 浏览

django - 拥有更新字段或 COUNT 查询是否“更好”?

在我正在开发的 Django 应用程序中,我进行了以下操作:

我计划经常访问avg_child_rating 。如果我执行以下操作会优化:

现在的不同之处在于,每次创建/评级/删除孩子时,都会更新 Parent 对象。我知道创建/评级会经常进行。

什么更

0 投票
10 回答
50076 浏览

django - 在 Django 中允许空值的唯一字段

我有具有字段栏的模型 Foo。bar 字段应该是唯一的,但允许其中包含空值,这意味着如果 bar 字段是 ,我希望允许多个记录null,但如果不是null,则值必须是唯一的。

这是我的模型:

这是表的相应 SQL:

当使用管理界面创建超过 1 个 bar 为空的 foo 对象时,它给了我一个错误:“带有这个 Bar 的 Foo 已经存在。”

但是,当我插入数据库(PostgreSQL)时:

这工作,很好,它允许我插入超过 1 条记录 bar 为空,所以数据库允许我做我想做的事,这只是 Django 模型有问题。有任何想法吗?

编辑

就 DB 而言,解决方案的可移植性不是问题,我们对 Postgres 很满意。我尝试为可调用设置唯一性,这是我的函数为bar的特定值返回 True/False ,它没有给出任何错误,但是缝合起来就像它根本没有效果一样。

到目前为止,我已经从bar属性中删除了 unique 说明符,并在应用程序中处理了bar的唯一性,但仍在寻找更优雅的解决方案。有什么建议吗?

0 投票
2 回答
1590 浏览

django - Django ORM:获取满足特定条件的最新先前对象

给定一个像这样的对象:

给定样本数据(假设单调递增的自动 created_date):

如果给定 Y,是否可以使用 Django ORM 创建一个返回 X 的查询(上一个查询,按日期,其中 'test'=True)?如果是这样,怎么做?

换句话说:给定 Y,如何获得“test”为 True 的最近的先前元素?

感谢您的想法和反馈,谢谢!

0 投票
4 回答
1682 浏览

python - 保存一次后如何将模型实例设为只读?

我正在编写的 Django 项目中的一个功能是发送时事通讯。我有一个模型Newsletter和一个函数,send_newsletter我已经注册了它来收听Newsletter's 的post_save信号。当通过管理界面保存时事通讯对象时,send_newsletter检查是否created为 True,如果是,则它实际发送邮件。

但是,出于显而易见的原因,编辑已经发送的时事通讯没有多大意义。有没有办法Newsletter在保存对象后将其设为只读?

编辑:

我知道我可以重写save对象的方法来引发错误,或者如果对象存在则什么都不做。但是,我没有看到这样做的意义。至于前者,我不知道在哪里捕获该错误以及如何向用户传达对象未保存的事实。至于后者,给用户错误的反馈(管理界面说保存成功)似乎不是一件好事。

我真正想要的是允许用户使用 Admin 界面编写时事通讯并发送,然后浏览已经发送的时事通讯。我希望管理界面在不可编辑的输入框中显示已发送时事通讯的数据,而无需“保存”按钮。或者,我希望“保存”按钮处于非活动状态。

0 投票
1 回答
689 浏览

python - 如何防止覆盖其他人修改过的对象

我想找到一种通用方法来防止在我签出对象后保存对象。

我们可以假设对象有一个timestamp包含上次修改时间的字段。如果我在 处签出(例如使用 ModelForm 访问了视图)t1并且对象再次保存在 处t2,假设t2>t1我应该无法保存它。

0 投票
1 回答
4573 浏览

python - 如何为 Django 模型中的字段元组指定唯一性

有没有办法在 Django 中指定一个模型,以确保表中的一对字段是唯一的,其方式类似于类似字段的“unique=True”属性?

还是我需要在 clean() 方法中检查这个约束?

0 投票
3 回答
9816 浏览

python - 在 django 中分组

如何在 django 的主干版本中通过查询创建简单的组?

我需要类似的东西

实际上我想要做的只是获取所有具有不同名称的条目。

0 投票
3 回答
576 浏览

python - 在不请求整个对象的情况下获取外键

我有一个模型 Foo ,它具有 User 模型的 ForeignKey 。

稍后,我需要获取所有用户的 id 并将其放在列表中

但是当我这样做时,django 从数据库中获取整个用户实例,而不是只给我数字用户的 id,它存在于每个 Foo 行中。

如何在不查询每个用户或使用 select_related 的情况下获取所有 id?

谢谢