1

我正在尝试根据模板中的单选按钮从 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)。我可能在做一些非常基本的错误......

J。

4

1 回答 1

2

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

reporttype = request.POST['reporttype']

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

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

这会将值设置为从单选按钮传入的值或默认的“全部”。看起来你也希望它小写,所以坚持lower()到底应该为你处理。

于 2013-07-29T04:54:23.437 回答