首页 > 解决方案 > 我可以从单个 Django 函数中分别返回模板和变量吗?

问题描述

我正在写一个ajax调用。该调用返回 HTML。但是,我只想在后端发生某些事情(发生插入或删除操作)时实际加载新的 HTML。

因此,我想从 Django 返回两个变量。(1) html,只有在第二个变量 (2) 返回 true 或 false 时才会加载。

虽然这不是很有用,但下面是一个示例函数:

def update_party_and_company_data(request):
  parties, companies, reload = get_the_data()
  context = {'parties': [list of parties],
            'companies': [list of companies],}


  html = render(request, 'setup_parties_data.html', context)
  reload_instruction = reload

  return HttpResponse(json.dumps({'html': html , 'reload_instruction ': reload_instruction }))

标签: django

解决方案


我通过使用 render_to_string 渲染模板解决了这个问题:

def update_party_and_company_data(请求):

  parties, companies, reload = get_data()
  context = {'parties': parties,
        'companies': companies,
        }


  html = render_to_string('setup_parties_data.html', context)
  return JsonResponse({'html': html, 'reload': reload})

推荐阅读