繁体   English   中英

在 Django Admin 中使用带有自定义 __init__ 的表单

[英]Use a form with a custom __init__ in Django Admin

我使用下面的代码在 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

现在,您可以访问当前用户在forms.ModelForm通过访问self.current_user

def __init__(self, author, *args, **kwargs):
    super(MyForm, self).__init__(*args, **kwargs)
    self.author = author
    # access to current user by self.current_user

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM