django并执行单独的.py来操作数据库

Hel*_*nar 1 python django django-models

我想执行一个随机的.py文件,在myproject/myapp文件夹中说foo.py,在某些时期使用crobjob

我在我的model.py中为app提供了这个基本模型:

class Mymodel(models.Model):
    content = models.TextField()
Run Code Online (Sandbox Code Playgroud)

假设我在我的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
Run Code Online (Sandbox Code Playgroud)

所以这是我的问题,我将做什么django进口?另外我如何检查查询是否没有项目(不知道Mymodel.filter(content = mytext)== null是否有效.另外我不知道这是否是实现我的目标的有效方法Mymodel的数量会很高.

谢谢

Dan*_*man 5

你在这里有两个不同的问题 - 将它们拆分出去会更好.

要运行单独的脚本,最好创建一个./manage.py命令.请参阅有关如何执行此操作的文档.

对于你的第二个问题,你提供的代码不是有效的Python,因为没有'null'值 - 你的意思是None.但即使这样,代码也无法正常工作,因为这不是您使用Django ORM编写查询的方式.你想要这样的东西:

if not MyModel.objects.filter(content=mytext).count():
Run Code Online (Sandbox Code Playgroud)

它询问数据库有多少项有content = mytext,如果没有则为真.