Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 在ModelAdmin中获取表单导致TypeError_Django_Python 3.x - Fatal编程技术网

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