首页 > 解决方案 > Django 错误 ModelForm 没有指定模型类

问题描述

暂时无法克服这个错误,检查了所有相关主题,每个人都有错字/语法问题。我已经检查了所有内容,代码看起来很好,我真的不知道可能是什么问题,如果有人看到问题请帮忙。下面我将放置我的代码和错误。

我创建了一个表单,因此我可以通过一个按钮添加一个新主题,我在视图中调用该按钮并在模板中呈现,非常简单。

追溯

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:\Users\D\Documents\django\project\env\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\D\Documents\django\project\env\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\D\Documents\django\project\project\App\decorations.py", line 7, in wrap
    return function(request, *args, **kwargs)
  File "C:\Users\D\Documents\django\project\project\App\views.py", line 40, in add_subject_view
    newsubj = AddSubjectForm()
  File "C:\Users\D\Documents\django\project\env\lib\site-packages\django\forms\models.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.

我的表格.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})

标签: pythondjango

解决方案


你有一个错字,应该是Meta而不是meta


推荐阅读