2

我已经设置了一个与我的 django 网站配合良好的 dash 应用程序,但我希望在具有模板的页面上使用 dash 应用程序。

我的设置是通常的设置,即:

视图.py

def dispatcher(request):
    '''
    Main function
    @param request: Request object
    '''

    params = {
        'data': request.body,
        'method': request.method,
        'content_type': request.content_type
    }
    with server.test_request_context(request.path, **params):
        server.preprocess_request()
        try:
            response = server.full_dispatch_request()
        except Exception as e:
            response = server.make_response(server.handle_exception(e))
        return response.get_data()

@login_required
def dash_index(request, **kwarg):

    return HttpResponse(dispatcher(request))


@csrf_exempt
def dash_ajax(request):
    return HttpResponse(dispatcher(request), content_type='application/json')

网址.py

urlpatterns = [
    re_path('^_dash-', views.dash_ajax),
    re_path('^', views.dash_index),
] 

上面的代码工作正常。现在,我尝试了以下方法将页面(查看 dash_index)嵌入到模板(称为仪表板模板)中。该模板不是用于格式化应用程序本身,而是用于将“围绕”应用程序的元素,例如导航栏、页脚、菜单等。

试试n°1

@login_required
def dash_index(request, **kwarg):

    template_name = "dashboard_template.html"
    return HttpResponse(dispatcher(request),template_name)

不会产生错误,但不会显示模板。

尝试 n°2:

@login_required
def dash_index(request, **kwarg):

    template = loader.get_template("dashboard_template.html")
    return HttpResponse(template.render(dispatcher(request)))

我从 urls.py 文件中收到以下错误

AttributeError: module 'app_name.views' has no attribute 'dash_index'

尝试 n°3:

@login_required
def dash_index(request, **kwarg):

    return render(dispatcher(request),"dashboard_template.html")

同样的错误

AttributeError: module 'app_name.views' has no attribute 'dash_index'

有人可以帮忙吗?

4

1 回答 1

0

你必须尝试:-

return render(request, 'dashboard_template.html', context={'dash': dispatcher(request)})

在你的dashboard_template.html,确保添加安全。

{{ dash|safe }}
于 2019-08-29T09:18:18.307 回答