我正在编写一个用户驱动的应用程序,其中包含多个区域。我希望允许用户自定义他们的消息设置,以便他们只收到有关他们关心的部分和操作的电子邮件。我制定了以下内容Class
:
class EmailSetting(models.Model):
user = models.ForeignKey(User, related_name="%(class)s_related_user")
key = models.CharField(max_length=50)
value = models.BooleanField()
这将由名为 的方法使用,该方法get_users(key, default)
应返回用户列表。例如,如果我询问在 a 上被key="new_post", default=False
替换的用户列表,我应该得到一个用户列表,其中他们有一个 EmailSetting,该键的值为 True。这很简单,因为我可以只使用 EmailSetting 模型。
如果默认值为 True,则事情似乎更难。我从来没有做过比模型的基本查找更复杂的事情,所以我需要帮助。
从完整的用户列表中,我需要删除带有 False EmailSetting 的用户。没有在 EmailSetting 上进行另一个查询以查找 False 条目并迭代地将它们从第一个查询集中删除,我不知道该怎么做......
......但必须有另一种方式,因为那很臭。