Python Django引发异常:ModelForm没有指定模型类
我正在使用Django框架,它抛出了这个异常:ModelForm没有指定模型类 这是我的代码: 视图.pyPython Django引发异常:ModelForm没有指定模型类,python,django,Python,Django,我正在使用Django框架,它抛出了这个异常:ModelForm没有指定模型类 这是我的代码: 视图.py from django.contrib.auth import authenticate, login, logout from django.shortcuts import redirect from DjangoApp1.forms import login_form from django.shortcuts import render #For render templates
from django.contrib.auth import authenticate, login, logout
from django.shortcuts import redirect
from DjangoApp1.forms import login_form
from django.shortcuts import render #For render templates
def login_view(request):
form = login_form()
context = { 'form': form, 'mensaje':'Logeandose'}
if request.method == 'POST':
form = login_form(request.POST)
usuario = request.POST.get('username')
contrase = request.POST.get('password')
# Hacer el login
user = authenticate(username=usuario, password=contrase)
if user is not None and user.is_active:
login(request, user)
context['mensaje'] = u'Logeado como %s, contraseña %s' % (usuario, contrase)
else:
context['mensaje'] = u'No usuario o contraseña incorrecta'
return render (request, 'DjangoApp1/login.html', context)
from django.contrib.auth.models import User
from django import forms
class login_form(forms.ModelForm):
username = forms.SlugField (max_length=8,
label='Usuario: ')
password = forms.SlugField (max_length=8,
widget=forms.PasswordInput(),
label='Contraseña:',
help_text='Hasta 8 letras')
class Meta:
model = User
fields = ('username', 'password')
还有models.py,其中有登录表单:
型号.py
from django.contrib.auth import authenticate, login, logout
from django.shortcuts import redirect
from DjangoApp1.forms import login_form
from django.shortcuts import render #For render templates
def login_view(request):
form = login_form()
context = { 'form': form, 'mensaje':'Logeandose'}
if request.method == 'POST':
form = login_form(request.POST)
usuario = request.POST.get('username')
contrase = request.POST.get('password')
# Hacer el login
user = authenticate(username=usuario, password=contrase)
if user is not None and user.is_active:
login(request, user)
context['mensaje'] = u'Logeado como %s, contraseña %s' % (usuario, contrase)
else:
context['mensaje'] = u'No usuario o contraseña incorrecta'
return render (request, 'DjangoApp1/login.html', context)
from django.contrib.auth.models import User
from django import forms
class login_form(forms.ModelForm):
username = forms.SlugField (max_length=8,
label='Usuario: ')
password = forms.SlugField (max_length=8,
widget=forms.PasswordInput(),
label='Contraseña:',
help_text='Hasta 8 letras')
class Meta:
model = User
fields = ('username', 'password')
您需要缩进
类元
,因为它是模型表单类定义的一部分:
class login_form(forms.ModelForm):
username = forms.SlugField (max_length=8,
label='Usuario: ')
password = forms.SlugField (max_length=8,
widget=forms.PasswordInput(),
label='Contraseña:',
help_text='Hasta 8 letras')
class Meta:
model = User
fields = ('username', 'password')
详细解释。您的
类元缩进是这样的吗?如果是这样,那么您需要将其缩进一级,因为类Meta
属于表单类。此外,python类应该使用camelcase,变量名称应该都是小写加下划线,因此您的表单应该是LoginForm
。看看pep8的定义:如果我将Meta类写入LoginForm类,它会抛出一个IndentationError异常,那么您的缩进是不正确的,可能是您将制表符和空格混合了。谢谢你们两个!问题解决了。