我正在使用评论系统,现在,我想从网址注释中重新编写片段并添加符号#,我想将页面seccion精确地移动到评论列表,最后评论用户为{{ 1}}
我在发布评论时使用next来重定向usen:
<a name=#{{comment.id}}?> username </a>
但是在Django Doc中没有提及重写或定制器的评论redirect / url
有什么想法吗?
由于
答案 0 :(得分:5)
我偶然发现了这一点点丑陋。阅读源代码后,我没有看到任何改变这种行为的好方法。默认情况下,您会被重定向到模板的{{ next }}
变量中的网址,Django会将?c=1
附加到1
是注释ID的网址。我希望将其改为#c1
,以便用户从页面跳到他们刚刚发布的评论。我这样做了一点“猴子补丁”如下:
from django.contrib.comments.views import utils
from django.core import urlresolvers
from django.http import HttpResponseRedirect
def next_redirect(data, default, default_view, **get_kwargs):
next = data.get("next", default)
if next is None:
next = urlresolvers.reverse(default_view)
if get_kwargs:
next += '#c%d' % (get_kwargs['c'],)
return HttpResponseRedirect(next)
# Monkey patch
utils.next_redirect = next_redirect