python - 小白django提交数据后,没有存储到数据库(查阅资料并没有发现问题)

 小涵竹叶 发布于 2022-10-29 02:28

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 url
from 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

            
{% csrf_token %}

{{comment_form.author}}

{{comment_form.email}}

{{comment_form.url}}

{{comment_form.comment}}

{{comment_form.article}}

1 个回答
  • 一步一步排查,1表单是否提交数据到服务端,2把服务端的sql语句打印出来直接在数据库里面执行看看是否有错误。

    2022-10-30 08:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有