根据用户输入从Django生成报告

时间:2013-07-29 04:48:04

标签: django reportlab

我尝试根据模板中的单选按钮从Django生成报告,但无法从模板中获取数据以确定应生成哪种报告变体。

模板摘录:

<form action="{% url projects.views.projectreport reporttype %}">
    {% csrf_token %}
    <p>
    <input type="radio" name="reporttype"  value="All">All<br>
    <input type="radio" name="reporttype"  value="Current">Current</p>
    <input type = "submit" value="Print Project Report">
    </form>

查看摘要:

 reporttype = 'all'
    if 'current' in request.POST:
        reporttype = 'current'
    return render_to_response('index.html',{'project_list': project_list, 'reporttype': reporttype}, context_instance=RequestContext(request))

我可以将模板中的值返回到同一视图,但这会转到另一个视图(projects.views.projectreport)。我可能做了一些非常基本的错误...

学家

1 个答案:

答案 0 :(得分:2)

它不是request.POST中的“当前”,它将是reporttype。 request.POST是类似字典的对象,因此签入将检查键,而不是值。 reporttype的值可以是“Current”或“All”。所以只需更改代码即可

reporttype = request.POST['reporttype']

这会将reporttype设置为全部或当前(假设您在html中有默认设置 - 目前您没有)。你也可以做你正在尝试做的事情

reporttype = request.POST.get('reporttype', 'All').lower()

将值设置为从单选按钮传入的值,或者设置为默认值“All”。它似乎也希望它更低,所以坚持lower()应该为你处理。