发布后(django)从URL中删除注释变量?

时间:2009-11-14 19:39:13

标签: django

当我使用django的评论框架发表评论时,我有一个隐藏的next值集,希望一旦评论发布,它将使用户查看他们自己的评论。 next字段呈现如下:

<input type="hidden" name="next" value="http://example.com/item/1#c23" />

但是,当发布评论时,django会在网址的末尾添加?c=23,以便用户重定向到的完整形成的网址变为:

http://example.com/item/1#c23?c=23

在Firefox和Safari(简短测试)中,这可以防止页面向下移动到正确的id=23,并且只显示页面的顶部(我希望它显示刚刚发布的评论)。删除?c=23修复问题(手动),但我不知道如何告诉Django停止添加它。

想法?

2 个答案:

答案 0 :(得分:1)

不是你的问题的解决方案,但只是想补充说这是Django中的一个错误。如果你可以为它开票,那就太好了。

对于1.1,似乎ticket 10585处理next值中已存在的查询字符串。也就是说,如果nexthttp://example.com/item/1?a=1,那么在发布评论后它会变为http://example.com/item/1?a=1?c=23。代码更改看起来非常简单,因此您甚至可以自己提供补丁。

祝你好运!

2011年2月27日更新 :看起来ticket 13411附有补丁!

答案 1 :(得分:0)

此jQuery行允许您更改当前URL:

$(this).attr("href", "NEW_URL");

用新网址替换 NEW_URL 。您可以使用问号拆分http://example.com/item/1#c23?c=23,然后使用数组的第一部分作为新网址。