首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Django在发表评论后重定向到同一页

在使用Django开发网站时,可以通过以下步骤实现在发表评论后重定向到同一页:

  1. 首先,确保已经安装了Django框架并创建了一个Django项目。
  2. 在Django项目中,创建一个评论表单,用于接收用户的评论内容。可以使用Django的表单类来创建评论表单,并定义相应的字段。
  3. 在视图函数中,处理用户提交的评论表单数据。可以使用Django的视图函数装饰器@require_POST来限制只有POST请求才能访问该视图函数。在处理评论数据时,可以将评论保存到数据库中,并获取到当前评论所在的页面URL。
  4. 在保存评论后,使用Django的redirect()函数来进行重定向。将重定向的目标URL设置为之前获取到的当前评论所在的页面URL。

下面是一个示例代码:

代码语言:txt
复制
from django.shortcuts import render, redirect
from django.views.decorators.http import require_POST
from .forms import CommentForm

@require_POST
def add_comment(request):
    form = CommentForm(request.POST)
    if form.is_valid():
        # 保存评论到数据库
        comment = form.save()

        # 获取当前评论所在的页面URL
        current_url = request.META.get('HTTP_REFERER')

        # 重定向到当前评论所在的页面
        return redirect(current_url)

    # 处理表单验证失败的情况
    return render(request, 'error.html', {'form': form})

在上述示例中,add_comment是处理评论提交的视图函数。首先,通过CommentForm创建评论表单对象。然后,判断表单数据是否有效,如果有效则保存评论到数据库,并获取当前评论所在的页面URL。最后,使用redirect()函数将页面重定向到当前评论所在的页面。

这样,当用户在网站上发表评论后,页面会自动重定向到评论所在的页面,实现了在发表评论后重定向到同一页的功能。

推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云数据库MySQL版、腾讯云对象存储(COS)等。你可以在腾讯云官网上找到这些产品的详细介绍和文档。

请注意,以上答案仅供参考,具体实现方式可能因项目需求和版本变化而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django 博客单元测试:测试评论应用

提交的内容合法,则创建评论,用户被重定向回被评论文章的详情,页面中包含评论成功的消息提醒。...test_valid_comment_data 中,我们构造合法的评论内容并提交,预期结果是评论提交成功重定向评论文章的详情,所以使用了 assertRedirects 进行断言。...由于评论成功需要重定向,因此传入 follow=True,表示跟踪重定向,因此返回的响应,是最终重定向之后返回的响应(即被评论文章的详情),如果传入 False,则不会追踪重定向,返回的响应就是一个响应码为...对于重定向响应,使用 assertRedirects 进行断言,这个断言方法会对重定向的整个响应的过程进行检测,默认检测的是响应码从 302 变为 200。...基本套路就是代替 django 视图函数自动渲染模板内容的过程,手工构造一个包含待测试模板标签的模板,然后手工渲染其内容,断言渲染的内容是否包含预期的内容。

51730

第 14 篇:交流的桥梁“评论功能”—— HelloDjango 系列教程

注意这里注册的是 CommentsConfig 类, 博客从“裸奔”“有皮肤”[1] 中曾经讲过如何对应用做一些初始化配置,例如让 blog 应用在 django 的 admin 后台显示中文名字。...注册评论模型 admin 既然已经创建了模型,我们就可以将它注册 django admin 后台,方便管理员用户对评论进行管理,如何注册 admin 以及美化 博客从“裸奔”“有皮肤”[4]...当用户想要发表评论时,他找到我们给他展示的一个评论表单(我们已经看到文章详情的底部就有一个评论表单,你将看到表单呈现给我们的样子),然后根据表单的要求填写相应的数据。...展示评论表单 表单类已经定义完毕,现在的任务是文章的详情下方将这个表单展现给用户,用户便可以通过这个表单填写评论数据,从而发表评论。 那么怎么展现一个表单呢?...不过这里有一点不好的地方就是,评论成功页面直接跳转到了被评论文章的详情,没有任何提示,用户也不知道评论究竟有没有真的成功。

1.6K20

评论

考虑用户我们博客网站上发表评论的过程。...当用户想要发表评论时,他找到我们给他展示的一个评论表单(我们已经看到文章详情的底部就有一个评论表单,你将看到表单呈现给我们的样子),然后根据表单的要求填写相应的数据。...# 重定向 post 的详情,实际上当 redirect 函数接收一个模型的实例时,它会调用这个模型实例的 get_absolute_url 方法, # 然后重定向 get_absolute_url...这个函数位于 django.shortcuts 模块中,它的作用是对 HTTP 请求进行重定向(即用户访问的是某个 URL,但由于某些原因,服务器会将用户重定向另外的 URL)。...{% endfor %} 接下来尝试详情下的评论表单提交一些评论数据,可以看到详情评论列表处渲染了你提交的评论数据。

3.1K60

Django搭建blog网站(二)

函数就这么简单,但目前它还只是一个纯 Python 函数,Django 模板中还不知道该如何使用它。...created_time 记录用户发表评论的时间,我们肯定不希望用户发表评论时还得自己手动填写评论发表时间,这个时间应该自动生成。...# 重定向 post 的详情,实际上当 redirect 函数接收一个模型的实例时,它会调用这个模型实例的 get_absolute_url 方法, # 然后重定向 get_absolute_url...这个函数位于 django.shortcuts 模块中,它的作用是对 HTTP 请求进行重定向(即用户访问的是某个 URL,但由于某些原因,服务器会将用户重定向另外的 URL)。...{% endfor %} 接下来尝试详情下的评论表单提交一些评论数据,可以看到详情评论列表处渲染了你提交的评论数据。

4.5K100

django评论系统及多级评论

考虑用户我们博客网站上发表评论的过程。...当用户想要发表评论时,他找到我们给他展示的一个评论表单(我们已经看到文章详情的底部就有一个评论表单,你将看到表单呈现给我们的样子),然后根据表单的要求填写相应的数据。...# 重定向 post 的详情,实际上当 redirect 函数接收一个模型的实例时,它会调用这个模型实例的 get_absolute_url 方法, # 然后重定向 get_absolute_url...这个函数位于 django.shortcuts 模块中,它的作用是对 HTTP 请求进行重定向(即用户访问的是某个 URL,但由于某些原因,服务器会将用户重定向另外的 URL)。...{% endfor %} 接下来尝试详情下的评论表单提交一些评论数据,可以看到详情评论列表处渲染了你提交的评论数据。

6.8K61

第 15 篇:优化博客功能的细节,提升使用体验—— HelloDjango 系列教程

让我们的博客更加完美,使用起来更加顺手~ 模型中指定排序 为了让文章(Post)按发布时间逆序排列,让最新发表的文章排在文章列表的最前面,我们对返回的文章列表进行了排序,即各个视图函数中都有类似于...显示正确的评论量 有两处地方显示的评论量(首页文章列表和文章详情),显示评论量的方法很简单。回顾一下我们是如何获取某篇文章下的评论列表的?...包括如何编写模型(Model)、如何编写视图函数(View)、如何使用 django 内置的模板系统(Template)以及如何配置路由(URL),这四大模块是 django 开发的核心所在,现在我们已经能够基本掌握这些模块的使用方法了...如何部署服务器上让他人通过公网访问?这些需求都可以利用 django 内置的模块或者丰富的第三方应用来实现。 另外,django 还有海量的第三方应用来提供更加丰富的功能。...所以,让我们再接再厉,进入进阶篇,继续学习更多的 django 开发技巧,为博客提供更多的功能吧!

51620

已知小问题修正

模型中指定排序 为了让文章(Post)按发布时间逆序排列,即最新发表的文章排在文章列表的最前面,我们对返回的文章列表进行了排序,即各个视图函数中都有类似于 Post.objects.all().order_by...当然还有一些跳转可以完善,比如文章标题下有分类、发布时间、作者、评论量、阅读量等信息,可以设置点击分类跳转到分类页面;点击评论量就跳转到文章详情评论处等,这些细节部分不涉及新知识,就当做练习交给你自己完成了...显示正确的评论量 有两处地方显示的评论量,显示评论量的方法很简单。回顾一下我们是如何获取某篇 post 的下的评论列表的?我们使用的是 post.comment_set.all()。...包括如何编写模型(Model)、如何编写视图函数(View)、如何使用 Django 内置的模板系统(Template)以及如何配置路由(URL),这四大模块是 Django 开发的核心所在,现在我们已经能够基本掌握这些模块的使用方法了...如何部署服务器上让他人通过公网访问?这些需求都可以利用 Django 提供的 API 来实现。 另外,Django 还有海量的第三方应用来提供更加丰富的功能。

1.2K40

django 1.8 官方文档翻译: 1-2-3 编写你的第一个Django应用,第3部分

哲理 Django 应用程序中,视图是一“类”具有特定功能和模板的网页。 例如,一个博客应用程序中,你可能会有以下视图: 博客首页 – 显示最新发表的博客。...基于年份的归档 – 显示给定年份中发表博客的所有月份。 基于月份的归档 – 显示给定月份中发表博客的所有日期。 基于日期的归档 – 显示给定日期中发表的所有的博客。...评论功能 – 为一篇给定博客发表评论我们的 poll 应用程序中,将有以下四个视图: Poll “index” – 显示最新发布的民意调查。...实际的 Django 项目中,可能有 5、10、20 或者 更多的应用。Django如何区分它们的 URL 名称的呢?...比如说,polls 应用有一个 detail 视图,而可能会在同一个项目中是一个博客应用的视图。Django如何知道 使用 {% url %} 模板标记创建应用的 url 时选择正确呢?

1.8K50

Django中六个常用的自定义装饰器

使用它只用一句代码就可以检查用户是否通过身份验证,并将未登录用户重定向登录url。...Anonymous required 这个装饰器是参考Django自带的 login_required 装饰器,但是功能是相反的情况,即用户必须是未登录的,否则用户将被重定向 settings.py...Ajax required 这个装饰器用于检查请求是否是AJAX请求,使用jQuery等Javascript框架时,这是一个非常有用的装饰器,也是一种保护应用程序的好方法。...想象你有一个博客、购物论坛,如果用户需要有很多积分才能发表评论,这是一个避免垃圾信息的好方法。...下面创建一个装饰器来检查用户是否已登录并拥有超过10个积分,这样才可以发表评论,否则将抛出一个Forbidden。

1.2K40

Django小总结

E盘创建一个文件夹命名为homework 使用git clone https://github.com/ice-a/homework.git 命令将远程仓库克隆本地 .git同级目录运行cmd,...是MVT的核心,负责接受请求,获取数据,返回结果 T表示template 负责呈现内容浏览器 如果我Django中想使用mysql该怎么配置 源代码路径:E:\enlev\django\Lib...view视图中通过创建视图函数来给模板传递参数 c)模板中如何编写页面跳转 详情 新建工程步骤 1.创建项目 2.创建应用...视图的def函数中需要些响应的形式参数进行接收 如何使用模板注释 想要在模板中使用注释 需要写上 {# 需要注释的内容 #} 如何解除模板硬编码 需要在主目录的urls目录中写入 然后到应用目录的...重定向是 系统解决了客户端的请求 又由系统自动触发了一个自己的请求,然后将系统请求出来的结果 返回给客户端 eg:需要引入重定向

1K20

Django通过next参数实现登录跳转回到前一的3种方法

实际Python web开发过程中,我们经常会碰到这样的应用场景。当用户试图访问某个页面或评论某个页面时,我们会要求其先登录,然后在用户登录自动跳转到用户试图访问的页面。...小编我今天就来总结下Django如何实现用户登录跳转回前一的几种方法,希望对大家有所帮助。...如果我们不知道用户尝试访问的前一个页面是什么,我们该如何操作呢?这时我们可以用request.path获取前一面,如下所示。这是目前最好的解决方案。...更多内容见Django基础(10): URL重定向的HttpResonseDirect, redirect和reverse方法详解。...小结 有多种方法可以实现用户登录跳转回前一。小编我更推荐静态模板自定义next参数,其次是使用login_required装饰器。

2.3K30

Django内置的通用类视图CBV及示例

login/" TemplateView 显示Django HTML template 一般网站中使用模板显示的 ListView 显示对象列表 文章列表 DetailView 显示对象详情 文章详细...属性: form_class:要实例化的Form类. success_url:表单成功处理重定向的URL. tamplate_name:字符串表示的模板名称....方法: get_success_url():决定在表单成功验证重定向的URL,默认返回success_url. form_valid(form):表单验证成功调用该方法(注意并没有对数据进行操作...,并重定向get_success_url(),可以覆盖该方法以上行为之间添加额外的动作.该方法必须返回一个HttpResponse. form_invalid(form):如果表单验证失败,则使用已填充的表单数据和错误信息重新渲染上下文...delete()方法,然后重定向success_url.

3.2K10

Django 2.1.7 视图 - HttpResponse对象、子类JsonResponse、子类HttpResponseRedirect

HttpResponse对象 视图接收请求并处理,必须返回HttpResponse对象或子对象。django.http模块中定义了HttpResponse对象的API。...如果使用这种方式构造一个漂亮丰富的页面,对于开发人员真是会发疯,于是就有了下面的方式: 调用模板 可以将html、css、js定义一个html文件中,然后由视图来调用。...好了,这里就可以点击json1面中的按钮,通过ajax获取json2的json返回数据了。 如下: ? ajax代码执行过程如下: 1.发起请求。 2.服务器端视图函数执行。...Django中提供了HttpResponseRedirect对象实现重定向功能,这个类继承自HttpResponse,被定义django.http模块中,返回的状态码为302。...重定向简写函数redirect django.shortcuts模块中为重定向类提供了简写函数redirect。

1.3K20

django入门:Admin管理系统及表单(干货)

这一部分将介绍 django 自带的后台管理系统,以及如何通过表单提交数据 django admin 后台管理系统 在后台管理系统注册创建的模型 from django.contrib import admin...admin 主界面 当然,django 自带的 admin 管理系统不止那么点功能,接着我们通过定义一些参数,来定制 admin 界面 自定义 admin # 使用后台管理的时候,可能需要自己定制...admin 管理界面 为了可以和用户进行交流,我们需要获取用户的一些评论之类的,所以我们需要通过表单让用户提交信息,接下来我们将了解下 django 的表单 django 表单 存在相应模型(POST...# 会直接跳转 get_absolute_url 方法所指向的地址 return redirect(post) else: # 如果不是 POST 重定向空白的新建页面...页面,通过 spacename 和 name 值指定页面 return redict('blog:home') else: # 不是 POST 方式则重定向空白页面

2.8K20

Hcode网站的搭建日记(一)技术介绍和建站准备

Leancloud+Valine实现评论留言和邮箱提醒。 当然还有必不可少的html5+css+js(jquery)三件套。 在线功能的部分功能界面使用了Boostrap框架。...网站后端 熟悉会使用Python编程技术。 基本会使用Python的Django框架。 当然功能的脚本实现需要Python强大的各种外接库和模块。...当然若是打算练练手,使用本地内网访问网站的可以跳过。 配置项目环境 1. 下载安装Python3 官网下载点此 Python安装的环境配置也得弄好,Pip命令也是一样! 2....Django建设数据库模型类与MySQL联系起来,网站后台django-admin的使用使用Simpleui美化后台管理系统。 Ajax如何实现阅读量统计。...Git与远程仓库和服务器进行数据传输的一些命令操作,Leancloud+Valine如何实现评论与邮箱提醒。 如何部署Django项目服务器(Linux)。

1K10

Django 集成 CAS 实现 SSO 单点登陆

后端发现该请求未登陆,则返回前端 302 ,并 重定向 CAS 服务器的登录页面,并携带当前用户访问的网页链接 CAS 服务器上,用户填写登录信息,浏览器发送请求 CAS 服务器进行认证 CAS...验证通过,则创建该用户给登陆成功的 session 数据;反之,返回 前端 302, 重定向至 CAS 登陆面。 APP 服务验证 ST 通过之后,返回 前端 登陆面的 页面内容。...登陆面 http://127.0.0.1:8000/login ? image-20200914135857849 登陆面,我提供了填写用户、密码以及验证码,然后点击登录按钮的功能。...image-20200914141205269 使用 pip 安装: pip install django-cas-ng 配置项目使用 CAS 的客户端 项目的配置文件 settings.py 添加以下配置...image-20200914165737365 4.项目的登陆视图,增加用户的登陆状态判断,如果已登陆,则直接重定向至首页 ?

4.6K30

Django搭建blog网站(一)

于是引出这么几个问题: Django 如何接收 HTTP 请求? Django 如何处理这个 HTTP 请求? Django 如何生成 HTTP 响应?...5.2.使用Django模板系统 这基本上就上 Django 的开发流程了,写好处理 HTTP 请求和返回 HTTP 响应的视图函数,然后把视图函数绑定相应的 URL 上。 但是等一等!...8.3.编写详情模板 接下来就是书写模板文件,从下载的博客模板中把 single.html 拷贝 templates\blog 目录下(和 index.html 同一级目录),然后改名为 detail.html... index 页面博客文章列表的标题和继续阅读按钮写上超链接跳转的链接,即文章 post 对应的详情的 URL,让用户点击可以跳转到 detail 页面: <article class="post...然而如果你尝试跳转到详情<em>页</em><em>后</em>,你会发现样式是乱的。这在 真正的 <em>Django</em> 博客首页 时讲过,由于我们是直接复制的模板,还没有正确地处理静态文件。

5.6K91

第 12 篇:加缓存为接口提速

获取文章列表需要从数据库查询,获取单篇文章需要从数据库查询,获取评论列表也需要查询数据。但是,对于博客中的很多资源来说,某个时间段内,他们的内容几乎都不会发生更新。...例如文章详情,文章发表,除非对其内容做了修改,否则内容就不会变化。还有评论列表,如果没人发布新评论评论列表也不会变化。...配置 django 缓存,最重要的就是选择一个缓存服务,即缓存结果存储和读取的地方。本项目中我们决定开发环境使用本地内存(Local Memory)缓存服务,线上环境使用 Redis 缓存。...drf-extensions Cache django 的缓存框架比较底层,drf-extensions django 缓存框架的基础上,针对 django-rest-framework 封装了更多缓存相关的辅助函数和类...但是更为复杂的场景下,不能简单使用 URL 作为 key,比如即使是同一个 API 请求,已认证和未认证的用户调用接口得到的结果是不一样的,所以 drf-extensions 使用 KeyConstructor

1.1K40
领券