【发布时间】:2015-11-20 17:13:21
【问题描述】:
我正在尝试实时或自动删除记录,类似于this
据我了解(我是新手)您需要编写一个管理命令,但我很难掌握这个概念,它怎么可能是实时的?有人可以指出我正确的方向吗?我很困扰。提前谢谢你。
【问题讨论】:
-
您能详细说明一下吗?删除记录不需要管理命令
-
我已经编辑了我的问题
标签: django python-2.7 django-commands
我正在尝试实时或自动删除记录,类似于this
据我了解(我是新手)您需要编写一个管理命令,但我很难掌握这个概念,它怎么可能是实时的?有人可以指出我正确的方向吗?我很困扰。提前谢谢你。
【问题讨论】:
标签: django python-2.7 django-commands
您想了解的有关自定义 Django 命令的所有信息都可以在以下文档中找到:https://docs.djangoproject.com/en/1.8/howto/custom-management-commands/
基本上,您需要创建一个management/commands 目录,因此您的文件夹结构如下所示:
app/
... (some stuff you're having in your app directory)
management/
__init__.py
commands/
__init__.py
delete_all.py
现在在delete_all.py 中,您要声明一个扩展BaseCommand 的新命令类并负责您的所有逻辑。最简单的实现如下所示:
# delete_all.py
from django.core.management.base import BaseCommand
from app.models import MyModel
class Command(BaseCommand):
def handle(self, *args, **options):
print('Deleting all MyModel records!')
MyModel.objects.all().delete()
print('Successfully deleted all MyModel records!')
现在您可以使用manage.py 访问您的命令:
python manage.py delete_all
【讨论】:
app/management/commands,并且在管理和命令目录中带有__init__.py