我正在尝试复制ruby-toolbox(心形按钮)中使用的“喜欢项目”功能。
当您单击“喜欢”按钮时,它会将该项目添加到您喜欢的项目列表中,但它不会刷新页面。按钮的html只包含一个链接:
<a href="/projects/vanity/like" class="icon ... liked" id="like_1953"></a>
所以,我真的很想知道两件事。
(1)此按钮如何工作?
(2)如何使用Django复制它?或者,如果不可能,我该怎么做?
非常感谢任何帮助。
答案 0 :(得分:3)
来Ajax。当您需要更新页面内容而不重新加载页面时,ajax就是解决方案。它在Django中如何工作?这取决于。在复杂的情况下,render_to_response
和jquery.load(url)
非常实用。在您的简单情况下,您只需要向您的某个视图发送ajax调用,阅读答案并相应地更新DOM元素。
按钮是一个陷阱。我在页面中找不到javascript,但肯定有一些JS控制这些链接。他们至少需要:
hover
上的链接图片,更改或切换课程,或直接设置图片的网址。$.get
,$.load
或任何Ajax函数向服务器发送Ajax请求。他必须使用GET或POST来发送对象ID。如何让它在Django中运行?就像你编写普通视图一样!
urls.py
中的常规条目创建普通视图。像对待普通的Like页面一样对视图进行编码。例如加载用户,检查是否已经喜欢,如果没有,喜欢,否则,不像。最后一行会改变。你可以使用HttpResponse
返回一个json对象或只返回一个字符串,如'0'表示'不喜欢','1'表示'喜欢'。如果您需要更多详细信息,最近有一个教程here。