我正在尝试使用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/
非常感谢您的帮助!
我错写了modelform_factory
而不是正确的modelformset_factory