【发布时间】:2021-12-30 19:22:44
【问题描述】:
我正在 Django 中开发一家电子商务商店。我想知道如何使用 render() 方法,有条件地通过 JavaScript 或 AJAX 或 JSON 传递给模板的数据库数据?
例如,假设我有一个关注者models.py:
from django.db import models
class Suit(models.Model):
title = models.CharField(max_length = 100, verbose_name = "Title")
img = models.FileField(upload_to = 'suit-products/', null = True, verbose_name = "Picture")
def __str__(self):
return f"{self.title}"
class Buttoning(models.Model):
title = models.CharField(max_length = 100, verbose_name = "Title")
img = models.FileField(upload_to = 'buttonings/', null = True, verbose_name = "Picture")
def __str__(self):
return f"{self.title}"
并关注views.py
from django.shortcuts import render
def index(request):
suit_prods = Suit.objects.all()
buttoning = Buttoning.objects.all()
context {
"suit_prods": suit_prods,
"buttoning": buttoning
}
return render(request, "index/index.html", context)
并关注index.html(模板):
{% for element in suit_prods %}
<li>
<a href="#">
<div id="menu">
<img src="{{ element.img.url }}" />
<span>{{ element.title }}</span>
<span></span>
</div>
</a>
</li>
{% endfor %}
现在我想要的是,如果在index.html 的列表项中单击的element 具有title 作为"two_piece_suit" 然后将{{ buttoning }} 的项显示为列表,否则通过。
如果我使用一些 JS 语法来解释它,那么我想要以下行为:
<scrip>
var suit_menu = document.getElementsByClassName("menu");
for(var i = 0; i < suit_menu.length; i++) {
if(suit_menu.text == "two_piece_suit") {
{% for element in buttoning %}
<li>
<a href="#">
<div id="buttoning">
<img src="{{ element.img.url }}" />
<span>{{ element.title }}</span>
<span></span>
</div>
</a>
</li>
{% endfor %}
}
}
</script>
【问题讨论】:
标签: javascript django django-models django-templates