类型错误:modelform_factory() 'extra' 遇到意外的关键字参数



我正在尝试使用modelformset_factory来呈现多个表单。但是,当尝试运行服务器时,会出现TypeError: modelform_factory() got an unexpected keyword argument 'extra'错误

所有在线消息来源都说我应该能够在modelform_factory中指定extra参数,但我似乎不能。

forms.py

class MapSeniorTeachForm(ModelForm):
role = forms.CharField(max_length=32)
def __init__(self, teach_id, *args, **kwargs):
super(MapSeniorTeachForm, self).__init__(*args, **kwargs)
self.teach_id = teach_id
self.fields['senior'] = forms.ChoiceField(choices=[(1,1),(2,2),(3,3)])

class Meta:
model = MapSeniorTeach
fields = ['role', 'senior']
MapSeniorTeachFormset = modelform_factory(MapSeniorTeach, form=MapSeniorTeachForm, extra=1)

剪切输出日志

File "C:UsersethanAppDataLocalProgramsPythonPython310libimportlib__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:UsersethanDocumentsVSCodeProjectsbansheeAppbansheeApp_projectbansheetrainingurls.py", line 3, in <module>
from .views import *
File "C:UsersethanDocumentsVSCodeProjectsbansheeAppbansheeApp_projectbansheetrainingviews.py", line 14, in <module>
from .forms import LessonTeachForm, ActivityTeachForm, MapSeniorTeachFormset
File "C:UsersethanDocumentsVSCodeProjectsbansheeAppbansheeApp_projectbansheetrainingforms.py", line 25, in <module>
MapSeniorTeachFormset = modelform_factory(MapSeniorTeach, form=MapSeniorTeachForm, extra=1)

需要注意的一点是,如果我删除了额外的关键字,那么表单的一个实例就会成功呈现。

以下是我之前谈到的一些来源:
https://docs.djangoproject.com/en/4.1/topics/forms/formsets/https://micropyramid.com/blog/understanding-djangos-model-formsets-in-detail-and-their-advanced-usage/

非常感谢您的帮助!

正如@Iain Shelvington在评论中所说:

我错写了modelform_factory而不是正确的modelformset_factory

相关内容

最新更新