首页 > 解决方案 > 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

标签: pythondjango

解决方案


也许问题是get_key_expiration。也许每次创建对象订阅者时都会调用该函数并且该函数很慢?


推荐阅读