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

标签 python django django-forms 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

您现在可以通过访问 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/

相关文章:

python - Django/mysqlclient 寻找丢失的 `libmysqlclient.18.dylib` 文件

python - 如何使用 Django choicefield 动态设置选项?

python - 使用 Python 和 Keras 创建两层简单 RNN 模型

python - GeoDjango 按与模型字段的距离过滤

python selenium TimeUnit - 从哪里导入

django - 如何通过额外的 kwargs 在 django 模型集工厂中形成?

搜索结果网址中的django csrf_token

python - 当字段变化时如何调用类模型中的函数?

python - 无符号数和有符号数的numpy总和变为 float

python - Pyspark 中的 Pickle 错误