暂时无法通过这个错误,检查了所有相关主题,每个人都有拼写错误/语法问题。我已经检查了一切,代码看起来很好,我真的不能告诉什么可能是问题,如果有人看到这个问题,请帮助。下面我将放置我的代码和错误。
我创建了一个表单,这样我就可以通过一个按钮来添加一个新的主题,我在我的视图中调用这个按钮,并在模板中呈现,非常简单。
回溯
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/addsubj/
Django Version: 3.1.5
Python Version: 3.7.0
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'App',
'crispy_forms']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback (most recent call last):
File "C:UsersDDocumentsdjangoprojectenvlibsite-packagesdjangocorehandlersexception.py", line 47, in inner
response = get_response(request)
File "C:UsersDDocumentsdjangoprojectenvlibsite-packagesdjangocorehandlersbase.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:UsersDDocumentsdjangoprojectprojectAppdecorations.py", line 7, in wrap
return function(request, *args, **kwargs)
File "C:UsersDDocumentsdjangoprojectprojectAppviews.py", line 40, in add_subject_view
newsubj = AddSubjectForm()
File "C:UsersDDocumentsdjangoprojectenvlibsite-packagesdjangoformsmodels.py", line 287, in __init__
raise ValueError('ModelForm has no model class specified.')
Exception Type: ValueError at /addsubj/
Exception Value: ModelForm has no model class specified.
我FORMS.PY
from django.forms import ModelForm from django import forms from django.contrib.auth.forms import UserCreationForm from .models import MyUser, Subject
class AddSubjectForm(ModelForm):
class meta:
model = Subject
fields = ['ime', 'kod', 'program', 'bodovi', 'sem_redovni', 'sem_izvanredni', 'izborni']
MY VIEW(所需的一切都已导入到原始文件中)
@mentor_required
def add_subject_view(request):
if request.method == 'GET':
newsubj = AddSubjectForm()
return render(request, 'add_subject.html', {'subform':newsubj})
elif request.method == 'POST':
newsubj = AddSubjectForm(request.POST)
if newsubj.is_valid():
newsubj.save()
return redirect('subject_list')
else:
return render (request, 'add_subject.html', {'subform':newsubj})
我是Mudassar兄弟,
我看了你的代码,代码是正确的,只是输入错误
你写的class meta是小写的,它应该是大写的,即meta这只是打字错误
你的代码应该是这样的…
class AddSubjectForm(ModelForm):
class Meta:
model = Subject
fields = ['ime', 'kod', 'program', 'bodovi', 'sem_redovni', 'sem_izvanredni', 'izborni']
还要记住,如果你不使用模型的所有字段,那么只有你应该指定,否则在字段…
class AddSubjectForm(ModelForm):
class Meta:
model = Subject
fields = '__all__'
好运你打错了,应该是Meta
而不是meta
。