我使用下面的代码在 Django Admin 中添加自定义表单:
class MyAdmin(admin.ModelAdmin):
form = MyForm
但是,表单有一个重写的构造函数:
def __init__(self, author, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.author = author
如何将 Admin 当前用户传递给表单构造函数?
最佳答案
像这样更改您的 MyAdmin
类:
class MyAdmin(admin.ModelAdmin):
form = MyForm
def get_form(self, request, **kwargs):
form = super(MyAdmin, self).get_form(request, **kwargs)
form.current_user = request.user
return form
您现在可以通过访问 self.current_user
来访问 forms.ModelForm
中的当前用户。
def __init__(self, author, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.author = author
# access to current user by self.current_user
关于python - 在 Django Admin 中使用带有自定义 __init__ 的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26959934/