gpt4 book ai didi

Django:在评论后重定向到当前文章

转载 作者:行者123 更新时间:2023-12-04 02:17:43 24 4
gpt4 key购买 nike

我正在尝试在我的项目中使用评论应用程序。

我尝试使用代码({% render_comment_form for event %}),在此处的文档中显示:
Django comments

问题是如何使表单在​​提交后重定向到同一页面。

还有一个大问题是:
目前,如果我们在 for 中发现任何错误,那么我们将被重定向到预览模板。
是否可以避免这种行为并在同一表单上(在同一页面上)显示错误?

最佳答案

我将在我的博客中向您展示我是如何解决它的,因此您可以做类似的事情。我的评论是针对条目应用程序中的条目模型。

首先为您的 Entry (like) 对象添加新方法。

def get_absolute_url(self):
return "/%i/%i/%i/entry/%i/%s/" % (self.date.year, self.date.month, self.date.day, self.id, self.slug)

它为条目对象生成 url。 URL 示例:/2009/12/12/entry/1/lorem-ipsum/

到 urls.py 添加 1 行:
(r'^comments/posted/$', 'smenteks_blog.entries.views.comment_posted'),

所以现在你的 urls.py 文件中应该至少有 2 行注释。
(r'^comments/posted/$', 'smenteks_blog.entries.views.comment_posted'),
(r'^comments/', include('django.contrib.comments.urls')),

对于 views.py 文件中的条目(如)应用程序添加功能:
from django.contrib.comments import Comment #A
...
def comment_posted(request):
if request.GET['c']:
comment_id = request.GET['c'] #B
comment = Comment.objects.get( pk=comment_id )
entry = Entry.objects.get(id=comment.object_pk) #C
if entry:
return HttpResponseRedirect( entry.get_absolute_url() ) #D
return HttpResponseRedirect( "/" )
  • A) 在文件顶部导入
    访问评论对象,
  • B) 得到
    comment_id 表单请求,
  • C) 获取
    条目对象,
  • D) 使用
    get_absolute_url 方法来制作
    正确的重定向。

  • 现在:
  • 条目站点上评论表单中的“发布”按钮会将用户重定向到同一(条目)站点。
  • 预览站点上的发布按钮将用户重定向到正确的(条目)站点。
  • 条目站点和预览站点上的评论表单中的预览按钮将用户重定向到预览站点
  • 感谢页面不再使用(我认为该页面很烦人)。

  • 接下来要做的事情是覆盖 preview.html 模板:
  • 转到django框架目录,在linux下可以通过/usr/share/pyshared/。
  • 从 DJANGO_DIR/contrib/comments/templates/comments/preview.html 获取原始 preview.html 模板
  • 将其复制到项目 PROJECT_DIR/templates/comments/entries_preview.html 中的模板目录
  • 从现在开始,它应该覆盖默认模板,您可以通过这种方式更改扩展:{% extends "your_pagelayout.html"%} 以使您的布局和所有 css 文件工作。
  • 关于Django:在评论后重定向到当前文章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2123206/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com