python - 小白django提交數據后,沒有存儲到數據庫(查閱資料并沒有發現問題)
問題描述
views.py
#提交評論def comment_post(request): try:if request.method == ’POST’: comment_form = CommentForm(request.POST) print(comment_form) print(comment_form.is_valid())if comment_form.is_vaild():#驗證表單 #獲取表單信息 comment = Comment.objects.create(username=comment_form.cleaned_data['author'], email=comment_form.cleaned_data['email'], url=comment_form.cleaned_data['url'], content=comment_form.cleaned_data['comment'], article_id=comment_form.cleaned_data['article'], user=request.user if request.user.is_authenticated() else None) print(’comment:’,comment) comment.save()else: return render(request,’failure.html’,{’reason’:comment_form.errors}) except Exception as e:logger.error(e) return redirect(request.META[’HTTP_REFERER’])#HTTP_REFERE是header的一部分,瀏覽器向服務器發送請求的時候,告訴服務器我是從哪里過來的
urls.py
from django.conf.urls import urlfrom blog_project.views import *urlpatterns = [ url(r’^$’,index,name=’index’), url(r’^archive/$’,archive,name=’archive’), url(r’^article/$’,article,name=’article’), url(r’^comment/post/$’,comment_post,name=’comment_post’), url(r’^logout$’,do_logout,name='logout'), url(r’^reg’,do_reg,name=’reg’), url(r’^login’,do_login,name=’login’), url(r’^category/$’,category,name=’category’)]
forms.py
class CommentForm(forms.Form): ’’’ 評論表單 ’’’ author = forms.CharField(widget=forms.TextInput(attrs={'id':'author','class':'comment_input','required':'required','size':'25','tabindex':'1'}), max_length=50,error_messages={'required':'username不能為空',}) email = forms.EmailField(widget=forms.TextInput(attrs={'id':'email','type':'email','class':'comment_input','required':'required','size':'25','tabindex':'2'}), max_length=50,error_messages={'required':'email不能為空',}) url = forms.URLField(widget=forms.TextInput(attrs={'id':'url','type':'url','class':'comment_input','size':'25','tabindex':'3'}), max_length=100,required=False) comment = forms.CharField(widget=forms.Textarea(attrs={'id':'comment','class':'message_input','required':'required','cols':'25','rows':'5','tabindex':'4'}),error_messages={'required':'評論不能為空',}) article = forms.CharField(widget=forms.HiddenInput())
article.html
<form action='{% url ’comment_post’ %}' method='post'>{% csrf_token %}<p>{{comment_form.author}} <label for='author'>Name<span style='color:red;'>*</span></label></p><p>{{comment_form.email}} <label for='email'>Email(Will NOT be published)<span style='color:red;'>*</span></label></p><p>{{comment_form.url}} <label for='url'>URL</label></p><p> {{comment_form.comment}}</p><p> {{comment_form.article}} <input name='submit' type='submit' tabindex='5' value='確認' /></p> </form>
問題解答
回答1:一步一步排查,1表單是否提交數據到服務端,2把服務端的sql語句打印出來直接在數據庫里面執行看看是否有錯誤。
