Django:自动删除记录

时间:2015-11-20 17:13:21

标签: django python-2.7 django-commands

我正在尝试实时删除记录或自动类似于this

据我了解(我是新手)你需要写一个管理命令,但我很难掌握这个概念,它是如何实时的?有人能指出我正确的方向吗?我很迷茫。提前谢谢。

1 个答案:

答案 0 :(得分:3)

您可以在文档中找到有关自定义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