Python Django Listview FormMixin
我是django的新手抱歉,如果这是一个愚蠢的问题,我试图在django中使用FormMixin,但收到以下错误:Python Django Listview FormMixin,python,django,django-forms,django-generic-views,django-listview,Python,Django,Django Forms,Django Generic Views,Django Listview,我是django的新手抱歉,如果这是一个愚蠢的问题,我试图在django中使用FormMixin,但收到以下错误: return form_class(**self.get_form_kwargs()) TypeError: 'NoneType' object is not callable Forms.py class SubscriberForm(forms.Form): email = forms.EmailField(label='',
return form_class(**self.get_form_kwargs())
TypeError: 'NoneType' object is not callable
Forms.py
class SubscriberForm(forms.Form):
email = forms.EmailField(label='',
max_length=100,
widget=forms.EmailInput(attrs={'class': 'form-control', 'type':'email'}), validators=[validateEmail])
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
from .models import Subscriber
from .forms import SubscriberForm
import random
from django.views.generic.edit import FormMixin
from django.urls import reverse
class NewsletterList(FormMixin, generic.ListView):
queryset = newsletter.objects.filter(status=1).order_by('-created_on')
template_name = 'index.html'
from_class = SubscriberForm
def post(self, request, *args, **kwargs):
form = SubscriberForm(request.POST)
if form.is_valid():
sub = Subscriber(email=request.POST['email'], conf_num=random_digits())
sub.save()
return render(request, "index.html", {'form': SubscriberForm()})
else:
return render(request, "index.html", {'form': SubscriberForm()})
视图.py
class SubscriberForm(forms.Form):
email = forms.EmailField(label='',
max_length=100,
widget=forms.EmailInput(attrs={'class': 'form-control', 'type':'email'}), validators=[validateEmail])
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
from .models import Subscriber
from .forms import SubscriberForm
import random
from django.views.generic.edit import FormMixin
from django.urls import reverse
class NewsletterList(FormMixin, generic.ListView):
queryset = newsletter.objects.filter(status=1).order_by('-created_on')
template_name = 'index.html'
from_class = SubscriberForm
def post(self, request, *args, **kwargs):
form = SubscriberForm(request.POST)
if form.is_valid():
sub = Subscriber(email=request.POST['email'], conf_num=random_digits())
sub.save()
return render(request, "index.html", {'form': SubscriberForm()})
else:
return render(request, "index.html", {'form': SubscriberForm()})
有人能帮我吗。提前感谢您输入了一个错误:这是
表单\u class=SubscriberForm
,而不是from\u class=…
。非常感谢,这就解决了这个问题,还有一个问题,表单提交后如何返回列表视图?@WillemVanOnsem您能帮我解决这个问题吗