请问我是django的初学者。当我在veiws.py中连接我的班级时,我得到了一个错误,但我并不清楚,但是当我不连接它时,它可以与班级一起工作
这是我的views.py
class AudioCreateView(LoginRequiredMixin, CreateView):
login_url = 'main:login'
model = Audio
fields = AudioForm
# fields = ['title','audio','author', 'categories']
template_name = 'main/events/create_audio.html'
这是我的表格。py
class AudioForm(ModelForm):
class Meta:
model = Audio
fields = ['id','title','audio','author', 'categories']
# widgets = {
# 'audio': forms.FileField(widget=forms.FileInput(attrs={'accept':'application/pdf'}))
#
请,这是我尝试使用它时遇到的错误
File "C:\Users\Joe\Desktop\MYDJAN~1\PRIEST~1\env\lib\site-packages\django\forms\models.py", line 551, in modelform_factory
return type(form)(class_name, (form,), form_class_attrs)
File "C:\Users\Joe\Desktop\MYDJAN~1\PRIEST~1\env\lib\site-packages\django\forms\models.py", line 256, in __new__
apply_limit_choices_to=False,
File "C:\Users\Joe\Desktop\MYDJAN~1\PRIEST~1\env\lib\site-packages\django\forms\models.py", line 152, in fields_for_model
if fields is not None and f.name not in fields:
TypeError: argument of type 'ModelFormMetaclass' is not iterable
有人可以帮我吗,我不明白为什么我会收到此错误
答案 0 :(得分:0)
我不确定我是否理解您的问题。但是在您的CreateView
中,您需要指定以下字段:
fields = ['id','title','audio','author', 'categories']
在小部件行中,您似乎也缺少结束符},即应该是:
widgets = {
'audio': forms.FileField(widget=forms.FileInput(attrs={'accept':'application/pdf'}))
}
我不知道这是您的问题,还是仅仅是复制和粘贴错误?
答案 1 :(得分:0)
我认为问题是您在fields
的{{1}}中传递的内容。
因为要使用CreateView
,所以可以使用Modelform
属性指定表单。
form_class