gpt4 book ai didi

django - 如何 Hook 管理表单以获取请求上下文?

转载 作者:行者123 更新时间:2023-12-04 17:07:07 26 4
gpt4 key购买 nike

Django - Overriding get_form to customize admin forms based on request问题是通过 Hook get_form() 方法,根据请求对象中用户的权限选择不同的表单。

我想在迭代期间实际调用对象上的方法,使用请求上下文输出一些信息。

documentation列出了 Hook 表单显示的四种方法。

但是函数签名不包括请求对象。如果他们这样做了,你可以这样写(注意 request 实际上不是一个参数):

class CustomAdmin(admin.ModelAdmin):
list_display = [ 'name', 'user_specific', ]
#
def user_specific(self, obj, request):
return obj.func1(request)
#
output.short_description = 'UserSpecific'

如果用于存储状态,覆盖 get_form() 将不是线程安全的...那么最好的方法是什么?

最佳答案

在你的情况下,我觉得也许编写你自己的 View 比破解 django 的管理站点是更好的选择。

但如果你坚持,你可以覆盖changelist_view并记录请求。

class CustomAdmin(admin.ModelAdmin):
list_display = [ 'name', 'user_specific', ]

def changelist_view(self, request, extra_context=None):
self.request = request
return super(admin.ModelAdmin, self).changelist_view(self, request, extra_context)

def user_specific(self, obj):
return obj.func1(self.request)

output.short_description = 'UserSpecific'

关于django - 如何 Hook 管理表单以获取请求上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5972481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com