Django 在ModelAdmin中获取表单导致TypeError
这个问题指的是我遇到的问题,它还没有解决。我已经创建了一个名为Django 在ModelAdmin中获取表单导致TypeError,django,python-3.x,Django,Python 3.x,这个问题指的是我遇到的问题,它还没有解决。我已经创建了一个名为AdminMemoForm的新简化版MemoForm,以帮助我隔离问题。创建表单的新版本后,我发现get\u form方法是导致TypeError:MemoForm对象无法调用的原因。下面是引发错误的新代码片段: Forms.py: class AdminMemoForm(forms.ModelForm): """ Memo creation form, related to: :model: 'memos.
AdminMemoForm
的新简化版MemoForm
,以帮助我隔离问题。创建表单的新版本后,我发现get\u form
方法是导致TypeError:MemoForm对象无法调用的原因。
下面是引发错误的新代码片段:
Forms.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',
)
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()
Admin.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',
)
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
另一个问题是,为什么这个错误显示的是旧的memorform
,而不是新的adminmemorform
?它已注册:admin.site.register(Memo,CustomMemoAdmin)
这可能很简单,但我不明白为什么会出现这种错误。任何帮助都将不胜感激。从
get\u form()
函数返回的值不应该是:
return form
不带引号,因为您通过调用super()创建了它。get_form()
?我目前正在处理项目的另一部分,但一旦完成,我将查看此部分。我不知道我在想什么,但我相信你是对的。感谢您抽出时间指出我愚蠢的错误。如果我每次做这样的事情都有1英镑的话……:)这解决了你的问题吗?我想是的XD