在Javascript HTML中访问Django视图中的上下文变量(列表)[重复]

Posted

技术标签:

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

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

views.py

context =  
  'unclean' : unclean
       

【问题讨论】:

你试过用 unclean 吗? 是的。但是,在 javascript 中访问这样的变量使其成为“字符串”类型。我需要将它用作 javascript 中的“数组”类型进行操作。感谢您的帮助。 【参考方案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>

【讨论】:

以上是关于在Javascript HTML中访问Django视图中的上下文变量(列表)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 HTML 中的 JavaScript 在 Django 中保存模型实例

Django:如何在javascript中访问当前登录用户的ID?

Django:如何将python变量值传递给javascript文件?

如何使用Django模板在javascript中访问ajax jquery中的模板变量

如何在javascript中获取django表单值而不将其保存到模型中

Django 模板变量和 Javascript