我想在某些时期使用 crobjob 在 myproject/myapp 文件夹中执行一个随机的 .py 文件,比如 foo.py
我的应用程序的 model.py 中有这个基本模型:
class Mymodel(models.Model):
content = models.TextField()
假设我的 foo.py 中有这个,我想检查是否有任何 Mymodel 对象具有与 mytext 相同的内容字段,如果没有,则创建一个以 mytext 作为内容的新 Mymodel,如果已经存在则什么都不做.
<do django importings>
mytext = "something here"
if Mymodel.filter(content=mytext) == null:
newitem = Mymodel(content=mytext)
newitem.save()
else:
pass
所以这是我的问题,我应该做什么 django 导入?另外我如何检查查询是否没有项目(不知道 Mymodel.filter(content=mytext) == null 是否有效。我也不知道这是否是实现我的目标的有效方法Mymodel 的数量会很高。
谢谢
最佳答案
您在这里有两个不同的问题 - 最好将它们分开。
要运行单独的脚本,您最好创建一个 ./manage.py
命令。参见 the documentation关于如何做到这一点。
对于第二个问题,您提供的代码不是有效的 Python,因为没有“空”值 - 您的意思是 None
。然而,即使那样代码也不会工作,因为这不是您使用 Django ORM 编写该查询的方式。你想要这样的东西:
if not MyModel.objects.filter(content=mytext).count():
它询问数据库有多少个 content=mytext 的项目,如果没有则返回 True。
关于python - django 并执行一个单独的 .py 来操作数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1586041/