【问题标题】:Accessing context variable (a list) in Django Views in Javascript HTML [duplicate]在Javascript HTML中访问Django视图中的上下文变量(列表)[重复]
【发布时间】:2020-04-18 21:01:28
【问题描述】:

我在尝试在我的 html javascript 中访问我的 django 视图中的上下文变量时遇到了一些问题。我想访问作为列表的“不干净”上下文,并在我的 html 脚本标记中将其用作列表。任何帮助表示赞赏。谢谢你。以下是我的一些代码:

views.py

context = { 
  'unclean' : unclean
       }

【问题讨论】:

  • 你试过用{{ unclean }}吗?
  • 是的。但是,在 javascript 中访问这样的变量使其成为“字符串”类型。我需要将它用作 javascript 中的“数组”类型进行操作。感谢您的帮助。

标签: javascript python html django


【解决方案1】:

Here is a demo of latest version,和你的情况类似。

python 代码

from django.template import loader

from .models import Question


def index(request):
    latest_question_list = Question.objects.order_by('-pub_date')[:5]
    template = loader.get_template('polls/index.html')
    context = {
        'latest_question_list': latest_question_list,
    }
    return HttpResponse(template.render(context, request))

HTML 代码:

{% if latest_question_list %}
    <ul>
    {% for question in latest_question_list %}
        <li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}

【讨论】:

  • 我没有投反对票,我只是通过review queues,因为其他人已将您的帖子标记为低质量(仅链接)。为防止这种情况再次发生,我建议阅读 How do I write a good answer 帮助页面。
  • 谢谢!我仍然不能同意其他人这样做,他可以写下他的答案或只是提醒我。这是一个很简单的问题。
【解决方案2】:

您可以使用json_script 标记将python 对象作为JS 变量包含在您的模板中

{{ unclean|json_script:"unclean-data" }}

<script>
    var unclean = JSON.parse(document.getElementById('unclean-data').textContent);
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 2011-05-16
    • 2019-03-23
    • 2023-03-13
    相关资源
    最近更新 更多