Проверка работоспособности панели администратора django

Я хочу создать конечную точку healthcheck для моей админпанели django. Я хочу зарегистрировать ее через admin.site.register_view (я использую пакет adminplus), но я не могу понять, как сделать ее общедоступной, без необходимости сначала аутентифицироваться.

Есть идеи?

В итоге я переопределил def has_permission(self, request) в подклассе AdminPlusMixin:

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 представлением, которое создается из существующей таблицы

 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.

Вернуться на верх