python - Django 管理员增加响应时间
问题描述
我最近在我的 Django Web 应用程序中添加了一个应用程序。我对正在发生的问题感到困惑。当我将以下 admin.py 文件添加到应用程序并部署代码时,站点的多个区域的响应时间会增加,其中许多区域不相关。ModelAdmin 的编写方式有问题吗?以前有人经历过吗?我正在运行 Django 1.11。
管理员.py:
class SubscriberAdmin(admin.ModelAdmin):
list_display = ('email',)
fields = ('email', 'verified')
readonly_fields = ('email', 'verified')
list_per_page = 50
admin.site.register(Subscriber, SubscriberAdmin)
模型.py:
class Subscriber(models.Model):
email = models.EmailField(null=False, unique=True)
activation_key = models.CharField(max_length=64)
key_expires = models.DateTimeField(default=get_key_expiration)
verified = models.BooleanField(default=False)
agency_class = {}
agency_type = None
@classmethod
def send_notifications(cls, agency_type, slugs):
"""
Sends notification emails to all subscribers.
:param agency_type: 'salary' or 'pension'
:param slugs: [list of agency slugs]
"""
cls._set_agency_type(agency_type)
subscribers = cls.objects.all()
for subscriber in subscribers:
subscriber._send_notification(slugs)
def _send_notification(self, slugs):
# code removed for brevity
解决方案
也许问题是get_key_expiration。也许每次创建对象订阅者时都会调用该函数并且该函数很慢?
推荐阅读
- flutter - 如何使用颤动中的按钮暂停或恢复异步任务?
- c++ - Visual Studio 2017 在虚幻引擎 4 项目中显示 IntelliSense 错误
- r - shinyWidgets::verticalTabPanel() 不适用于 Shiny 模块
- java - Java LocalDateTime 模式
- python - 无法理解的解析器行为
- google-api - 如何在没有 oauth 的情况下使用谷歌日历 API 访问用户谷歌日历信息?
- python - 最新 Python 版本 3.8.2 的导入错误没有名为 tkinter 的模块问题
- macos - 如何在 Mac/UNIX 的 osascript 对话框中添加密码输入表单
- android - RecyclerView 项目宽度在迁移到视图绑定后变为 wrap_content
- c++ - 通过匹配键的子元素来查找地图中的任何元素