首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django管理面板健康检查

django管理面板健康检查
EN

Stack Overflow用户
提问于 2022-04-14 14:44:50
回答 2查看 82关注 0票数 0

我想为django管理面板创建一个健康检查端点。我想通过admin.site.register_view注册它(我正在使用管理程序包),但是我不知道如何使公众能够访问它,而不需要首先进行身份验证。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-19 18:37:44

因此,我最终在def has_permission(self, request)的子类中重写了AdminPlusMixin

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2022-04-19 18:38:56

我相信这个方案已经过时了,相反,你可以这样做:

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

代码语言:javascript
复制
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',)

,它只是从am现有表创建的mysql视图

代码语言:javascript
复制
 create view proxy
    as select id
    from samples
    LIMIT 10;

最后在admin.py

代码语言:javascript
复制
@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类中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71873476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档