django 管理面板健康检查

django admin panel healthcheck

我想为我的 Django 管理面板创建一个健康检查端点。 我想通过 admin.site.register_view 注册它(我正在使用 adminplus package),但我不知道如何让 public 可以访问它,而不需要先进行身份验证。

有什么想法吗?

所以我最终覆盖了 AdminPlusMixin 的子类中的 def has_permission(self, request):

from adminplus.sites import AdminPlusMixin


class MyAdmin(AdminPlusMixin, AdminSite):

    def has_permission(self, request):
        if request.resolver_match.url_name == 'admin-healthcheck':
            return True
        return super().has_permission(request)

我认为该软件包已过时,您可以改为执行以下操作:

models.py 中创建了一个代理模型,例如:

class Proxy(models.Model):

    id = models.BigAutoField(db_column='id', primary_key=True)

    def str(self):
        return "<Label: id: %d>" % self.id

    class Meta:
        managed = False
        verbose_name_plural = 'proxies'
        db_table = 'proxy'
        ordering = ('id',)

这只是一个 mysql 视图,它是根据现有 table

创建的
 create view proxy
    as select id
    from samples
    LIMIT 10;

最后在 admin.py

@admin.register(Proxy)
class LabelAdmin(admin.ModelAdmin):
    change_list_template = 'label_view.html'
    def changelist_view(self, request, extra_context=None):
      ...
        return render(request, "label_view.html", context)

这样它将显示在管理面板中,在您正在使用的应用程序中。

可能您拥有的是 views.py 中的函数,在这种情况下,您应该替换 LabelAdmin class 中“...”所在的函数内容 class。