我有一个用于主页的类基本视图博客,我想在其中显示最近的帖子和时事通讯表单,但新闻信函表单没有显示在html页面中,当它处于基于函数的视图中时,它工作正常
views.py
class Blog(View):
template_name='blog/blogHome.html'
def get(self,request):
form=NewsletterForm()
recentPost=BlogPost.objects.filter().order_by('-updated')
page=request.GET.get('page',1)
paginator=Paginator(recentPost,2)
try:
posts=paginator.page(page)
except PageNotAnInteger:
posts=paginator.page(1)
except EmptyPage:
posts=paginator.page(paginator.num_pages)
args={"recentPost":posts}
return render(request,self.template_name,args)
def post(self,request):
form=NewsletterForm(request.POST or None)
if form.is_valid():
instanceMail=form.save(commit=False)
if NewsletterUser.objects.filter(email=instanceMail.email).exists():
messages.warning(request,"Your Email is aldready exists")
else:
instanceMail.save()
messages.success(request,"Your Email" +"\t" +instanceMail.email)
subject="Thank you for Joining in JOBvsJOB"
from_email=settings.EMAIL_HOST_USER
to_email=[instanceMail.email]
welcomemessage="Welcome to JOBvsJOB stay connected to get day to day "
send_mail('','','','')
return redirect('blog')
form=NewsletterForm()
args={"form":form}
return render(request,self.template_name,args)
form.py
class NewsletterForm(forms.ModelForm):
email=forms.EmailField(label='',widget=forms.TextInput(attrs={'placeholder':'Email'}))
class Meta:
model=NewsletterUser
fields=('email',)
def clean_email(self):
email=self.cleaned_data.get('email')
return email
url.py
from blog import views
urlpatterns=[
path('',views.Blog.as_view(),name="blog"),]
blog.html
{{form|crispy}}
您尚未通过args字典中的表单。 应该是这样的。 args={“recentPost”:posts,“form”:form}
相关问题 更多 >
编程相关推荐