首页 > 解决方案 > 获取 Django 列表 - javascript 中的字典

问题描述

我对 Django 有以下问题。我正在向 Javascript 发送一个列表,我希望在浏览器中得到这个结果。这个实例看起来像我的代码忽略了我所做的一切。

我的代码看起来像这样

视图.py

import itertools

from django.shortcuts import render
from django.views.generic import TemplateView

from django.http import HttpResponse, JsonResponse
import json

def index(request):
    return render(request, 'home.html')


class UsageView(TemplateView):
    template_name = 'overview.html'


def getFTest(request):
    .....

    context = {"Features": dataFeature}
    json_context = json.dumps(context)
    return render(request, "overview.html",  {"context_array" : json_context})

网址.py

from django.contrib import admin
from django.urls import path
from .views_ import index, getFTest

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    path(r'^admin/', admin.site.urls),
    path('', index, name="home"),
    path('overview', LicUsageView.as_view(), name="overview"),
    path('', getFTest, name="getFTest"),
]

概述.html

var test = ["{{ context_array|safe }}"];
console.log(test);

控制台的结果:一个空列表

在此处输入图像描述

有人可以告诉我我的错误在哪里吗?非常感谢

标签: javascriptdjango

解决方案


您有两条路径带有 as 路径模式'',这意味着如果您访问'',它将始终使用index视图,而不是 getFTest,因此它不会使用 渲染模板context_array,从而导致渲染一个空字符串。

因此,您应该设置getFTest为使用根路径进行渲染,或者设置不同的路径模式:

from django.contrib import admin
from django.urls import path
from .views_ import index, getFTest

urlpatterns = [
    path(r'^admin/', admin.site.urls),
    path('', getFTest, name='getFTest'),  # ← use getFTest
    path('overview', LicUsageView.as_view(), name="overview"),
]

推荐阅读