2012-01-16 39 views
0

我不知道Django native是否支持DOM中的变化。我不知道它现在是否是正确的名称,所以我想我会解释它。例如,如果我用django制作电子商店网站。我希望当我点击一个产品时,它应该添加到篮子里,这在html中可能看起来像这样。所以对于每个产品,我都添加了一个新的动态<li></li>。我可以用django来做到吗?或者我必须使用Javascript吗?Django:它支持DOM中的更改吗?

<div id="basket"> 
    <ul> 
    <li> 
    // some product 
    </li> 
    </ul> 
</div> 

回答

1

这取决于。

1)你可能想要让你的应用程序非常有活力,所以你的购物篮中的另一个元素会在没有页面重新加载的情况下出现。这将通过将ajax请求(您的服务器需要知道您在购物篮中的内容)与DOM操作(纯粹是JavaScript)结合来完成;

2)你可以使用更经典的方法。将元素添加到篮子只是一个POST请求。 Django处理请求(存储在会话或其他地方的当前篮子中)并为您生成新的HTML。

Imho,第一种方法更快,对最终用户来说看起来更好。缺点是您可能会丢失一些有价值的信息,当用户重新加载整个页面时会自动更新(例如项目的价格)。但是,如果我们谈论商店,这应该不成问题。毕竟产品数据多久变化一次?

0

Django本身不会为您生成JavaScript。通常的方法是将JavaScript导入到模板中的页面中。