django - ModelAdmin 中的 get_form 导致 TypeError
问题描述
这个问题是指我在这里遇到的尚未解决的问题。MemoForm
我创建了一个新的简化版本来AdminMemoForm
帮助我隔离问题。在创建表单的新版本后,我发现该get_form
方法是导致TypeError: MemoForm object not callable.
错误的新代码片段:
表格.py:
class AdminMemoForm(forms.ModelForm):
"""
Memo creation form, related to:
:model: 'memos.Memo',
"""
class Meta:
model = Memo
fields = (
'title',
'content',
'important',
'word_file',
'receiver',
'read',
'unread',
)
管理员.py:
class CustomMemoAdmin(admin.ModelAdmin):
form = AdminMemoForm
def get_form(self, request, obj=None, **kwargs):
form = super().get_form(request, obj, **kwargs)
# if not request.user.is_superuser:
# self.fields = (
# 'title',
# 'content',
# 'important',
# 'receiver',
# 'read',
# 'unread',
# 'word_file',
# )
# self.filter_horizontal = ('casino',)
return form()
完整的错误:
TypeError at /admin/memos/memo/add/
'MemoForm' object is not callable
另一个问题是为什么这个错误显示的是旧形式MemoForm
而不是新形式AdminMemoForm
?它已注册:admin.site.register(Memo, CustomMemoAdmin)
这可能很简单,但我不明白为什么会出现这个错误。任何帮助,将不胜感激。
解决方案
get_form()
你的函数
的返回不应该是:return form
没有引号,因为你通过调用创建了它super().get_form()
?
推荐阅读
- c# - 从空项目创建 ASP.NET Core 3 MVC
- java - 将 ByteBuffer 转换为字符串删除位于字符串末尾的字符串换行符?
- c# - 从 url 位置下载 PDF 文件会生成 HTML 文件
- ios - 弱到强引用仍然在查找时崩溃
- ios - 如何在 Flutter 中对齐 SingleScrollView 中的组件?
- python - Python:两台计算机之间的目标不可达(端口不可达)
- python - Yolov3中的自定义锚点
- c# - C# LINQ to Entities - 检索等待列表记录的所有记录和位置
- python - Peewee 如何选择每 n+ 行?
- java - Android CardView 使用 app:cardCornerRadius="5dp" 时不圆角