我想为django管理面板创建一个健康检查端点。我想通过admin.site.register_view注册它(我正在使用管理程序包),但是我不知道如何使公众能够访问它,而不需要首先进行身份验证。
有什么想法吗?
发布于 2022-04-19 18:37:44
因此,我最终在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)发布于 2022-04-19 18:38:56
我相信这个方案已经过时了,相反,你可以这样做:
在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',),它只是从am现有表创建的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类中。
https://stackoverflow.com/questions/71873476
复制相似问题