Django 全局查询集

2024-03-12

我想在我的 django 应用程序中有一个全局变量,用于存储我稍后在某些函数中使用的对象的结果列表,并且我不想多次评估查询集,我这样做:

from app.models import StopWord

a = list(StopWord.objects.values_list('word', flat=True))
...

def some_func():
  ... (using a variable) ...

这对我来说似乎没问题,但问题是syncdb和test命令抛出异常:

django.db.utils.DatabaseError: (1146, "Table 'app_stopword' doesn't exist")

我不知道如何摆脱这个,也许我走错了路?


听起来 StopWord 所属的应用程序要么不在您安装的应用程序设置中,要么您尚未运行syncdb来生成表。

可以通过使用来模拟存储“全局值”Django 缓存框架 http://docs.djangoproject.com/en/dev/topics/cache/.

# there is more to it then this - read the documentation
# settings.py needs to be configured.

from django.core.cache import cache

class StopWord(models.Model):
    ... # field definitions

    @classmethod
    def get_all_words(cls):
        key = 'StopWord.AllCachedWords.Key'
        words = cache.get(key)
        if words is None:
            words = list(StopWord.objects.values_list('word', flat=True))
            cache.set(key, words)
        return words

#elsewhere
from app.models import StopWord

for word in StopWord.get_all_words():
    # do something

上面还处理了一种缓存失效。您的设置应该设置默认超时,或者您可以将自己的超时设置为第三个参数cache.set()。这确保了在避免大多数数据库调用的同时,缓存会经常刷新,以便可以使用新的停用词而无需重新启动应用程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 全局查询集 的相关文章

随机推荐

  • 查找数组中两个最相似的值 (Java)

    我有一个整数数组 我想找到两个最相似的值 差异最小 例子 如果数组中的值是80 100 500 600 501 505 两个最相似的值是500 and 501 我怎样才能做到这一点 这似乎是个小任务 我们可以这样解决这个问题 1 应用任何有
  • tomcat在关闭之前是否等待应用程序线程完成?

    当我们使用 shutdown sh 脚本关闭 tomcat 时 它是等待应用程序线程完成还是杀死它们并关闭 tomcat Tomcat 尝试终止应用程序线程 但如果失败 则日志中可能会显示如下错误消息 严重 Web 应用程序似乎已启动一个线
  • WordPress:在子主题中覆盖父主题类功能

    我想重写子主题中的函数 该函数在父主题的类中定义 这是示例代码 class A extends B function construct this gt add ajax sync post data need to override ot
  • Git Clone:权限被拒绝(公钥)。致命:无法从远程存储库读取

    我正在使用 bitbucket 并尝试使用以下命令克隆存储库 sudo git clone email protected cdn cgi l email protection KassaK mbf git 我收到此错误 Permissio
  • 在gwt中添加外部js

    我在 GWT 中编写并检查了我的 js 代码 为了检查 我在 projectName html 文件中添加了我的 js 代码并且它有效 但是当我尝试添加外部 js 文件时 出现错误 WARN 404 GET
  • 调整图像大小时添加细白线

    当我们调整图像大小时 下载之后并将其存储到文档目录之前 通过以下代码 UIImage resizeImage UIImage image withSize CGSize newSize float actualHeight image si
  • 删除bash中每行的最后一个单词

    我正在尝试浏览一个文件 并删除每行中的最后一个单词 目前 我正在使用命令 sed s n old txt gt new txt 但结果显示 old txt 与 new txt 相同 感谢您的帮助 如果我能澄清这个问题 请告诉我 另外 为了定
  • 使用 JXL 将图像插入 Excel 文件而不拉伸它

    我可以使用 jxl 将图像插入到我的 excel 文件中sheet addImage WritableImage obj 我的问题是 它根据以下参数进行延伸WritableImage 我想知道是否有一种方法可以使我插入的图像不会像插入 20
  • SendGrid SMTP API:嵌入图像:错误请求

    我正在使用 sendgrid SMTP APIhttps github com sendgrid sendgrid csharp https github com sendgrid sendgrid csharp发送电子邮件 但我不知道如何
  • 在Python中,为什么负数的偶次方仍然是负数? [复制]

    这个问题在这里已经有答案了 在Python中 gt gt gt i 3 gt gt gt i 4 81 Why is i 4不评价为 i 4 但作为 i 4 我想有人可能会争辩说 求幂优先于 隐式 乘法i减一 即你应该阅读 1 i 4 但我
  • 如何在gdb中调用汇编?

    在 gdb 中我可以使用call运行函数 但是如果我想运行一些额外的程序集怎么办 Prior to GCC 5 1 I don t know of a way to run arbitrary machine code unless you
  • character_set_connection 的目的是什么?

    刚刚读过 Stefan Gehrig 的精彩回答是否需要 设置字符集utf8 https stackoverflow com questions 1566602 is set character set utf8 necessary 它比
  • 此错误是什么意思“NATURAL join 中使用的列不能有限定符”

    执行下面的代码后 我收到 ORA 25155 错误 SELECT p prod id prod name prod list price quantity sold cust last name FROM products p NATURA
  • 使用计数器和条件结束循环

    在Python中 我可以实现一个带有步数计数器和停止条件的循环作为经典案例for loop for i in range 50 result fun i print i result if result 0 break where fun
  • Jquery 在 onload 上执行 onchange 事件

    我有一个函数 可以在更改事件时运行后期操作 select marca change function var marca select marca option selected attr value select modello html
  • 从 webWorker 访问 localStorage

    WebWorker 可以访问 localStorage 吗 如果不是为什么不呢 从安全角度来看有问题吗 Web Worker 只能访问以下内容 XMLHttpRequest https developer mozilla org en US
  • java.net.SocketException:使用 HTTPConnection 重置连接

    我正在尝试使用一些外部 API 来获取一些数据 当数据量很小时 一切正常 但是当 API 返回的数据量很大时 我得到连接重置例外 下面的代码来自java类InterfaceHelper 我还在出现异常的行no处标记了注释 它在尝试从 Inp
  • 将 Backbone.sync 扩展为批量同步?

    应使用什么技术来实现 Backbone sync 的批量插入 更新 我想这取决于你的使用场景 以及你想改变多少调用代码 我认为你有两个选择 选项 1 不更改客户端 调用 代码 奇怪的是 注释Backbone sync 的来源 http ba
  • 模板,仅在头文件中编码?

    最近我了解到 如果我想使用模板 我应该只在头文件中实现代码 我知道有解决方案可以在 h 和 cpp 文件中执行此操作 但假设我不想这样做 我应该将所有代码写入 h 文件中吗 即使程序可能很大 这是一种编写代码的好方法吗 另外 只有 h文件
  • Django 全局查询集

    我想在我的 django 应用程序中有一个全局变量 用于存储我稍后在某些函数中使用的对象的结果列表 并且我不想多次评估查询集 我这样做 from app models import StopWord a list StopWord obje