【发布时间】:2012-05-21 06:23:24
【问题描述】:
我不需要 Django 管理员中的 celery 模块。有什么办法可以去掉吗?
【问题讨论】:
标签: python django django-admin celery django-celery
我不需要 Django 管理员中的 celery 模块。有什么办法可以去掉吗?
【问题讨论】:
标签: python django django-admin celery django-celery
更具体地说,在INSTALLED_APPS 内的任何应用程序的admin.py 之后 'djcelery'
from django.contrib import admin
from djcelery.models import (
TaskState, WorkerState, PeriodicTask,
IntervalSchedule, CrontabSchedule)
admin.site.unregister(TaskState)
admin.site.unregister(WorkerState)
admin.site.unregister(IntervalSchedule)
admin.site.unregister(CrontabSchedule)
admin.site.unregister(PeriodicTask)
【讨论】:
NotRegistered at /admin/ The model TaskState is not registered。但我仍然在管理员中看到它。
unregister 代码在INSTALLED_APPS 中djcelery 之后的任何应用程序的admin.py 文件中。否则Django会先执行我们的注销代码,然后遗憾地发现TaskState没有注册(因为它注册在djcelery的admin.py,还没有运行!)。
更新后的版本如下:
from django_celery_beat.models import (
IntervalSchedule,
CrontabSchedule,
SolarSchedule,
ClockedSchedule,
PeriodicTask,
)
admin.site.unregister(SolarSchedule)
admin.site.unregister(ClockedSchedule)
admin.site.unregister(PeriodicTask)
admin.site.unregister(IntervalSchedule)
admin.site.unregister(CrontabSchedule)
您始终可以通过以下方式获取已注册模型的列表:
admin.site._registry
【讨论】:
您可以简单地取消注册 celerys 模型,例如 admin.site.unregister(CeleryModelIdoNotWantInAdmin)
【讨论】: