所以我正在和我正在玩的网站上使用Django,并且一直在尝试研究如何在我的views.py中获取以下列表并能够在我的javascript中引用它?我正在努力创建一个ajax调用,而我正在进行的教程有点令人困惑。
#lines 6 - 8 of my code.
def catalog_home(request):
item_list = item.objects.order_by('name') #item is the model name
注意:项目模型包含名称,描述,概述和图标列。
我是否可以使用上面的列表(item_list)并能够编写一个类似于此的javascript函数? :
$(document).ready(function() {
$("#showmorebutton").click(function() {
$("table").append("<tr></tr>");
for (var i = 0; i < 3; i++) {
var itemdescription = item.description;
var itemName = item.name;
var icon = item.icon;
$("table tr:last").append(generateCard(itemName,
itemdescription,
icon));
}
function generateCard(itemNameC, itemdescriptionC, iconC) {
var card = "<td class='tablecells'><a class='tabletext' href='#'><span class='fa "
+ iconC
+ " concepticons'></span><h2 class='header'>"
+ itemNameC
+ "</h2><p>"
+ itemdescripionC
+ "<span class='fa fa-chevron-circle-right'></span></p></a></td>";
return card;
}
我不是故意要找到答案,我很感激任何反馈/建议让我来处理这项任务,因为我对编码很新。
答案 0 :(得分:0)
你绝对应该能够做到这一点。诀窍是了解Django模板。您显示了部分视图,但您需要渲染到模板。在模板内部,您可以执行类似
的操作HTML code for page goes here (if you're mixing js and html)
<script>
var items = [{% for d in data %}
{% if forloop.last %}
{{ d }}
{% else %}
{{ d }},
{% endif %}
{% endfor %}];
// code that uses items
</script>
请注意,需要做一些工作才能确保您拥有正确的逗号#[来自this SO answer,并且您的代码应该处理数组为空的情况。
或者,您可以使用django rest framework之类的东西从静态javascript到django服务器进行ajax调用,以获取项目列表作为json对象。