使用django模板和破折号应用程序

时间:2018-02-18 19:33:21

标签: python django templates embed plotly-dash

我已经设置了一个适用于我的django网站的破折号应用程序,但我希望在包含模板的页面上安装破折号应用程序。

我所拥有的设置是通常的设置,即:

  

views.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')

  

urls.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'

可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您必须尝试:-

/

确保在您的return render(request, 'dashboard_template.html', context={'dash': dispatcher(request)}) 中添加安全性。

dashboard_template.html