Django - 在重新加载时保存选中的复选框

时间:2015-03-25 02:52:00

标签: html django

我正在尝试保存已选中的复选框。

我现在遇到的问题是,当我按下电子邮件按钮时,页面变成空白,当我尝试返回时,它会询问我是否要"确认表单重新提交"。我也尝试在表单标签中链接相同的页面:

<form action="{% url 'ordered_user_list' %} method="post">

请注意,除了重新加载同一页面外,电子邮件按钮不应执行任何操作,但必须像以前一样检查这些框。另外,如果我从另一个页面回来,它仍然应该像以前一样检查。

在html文件中

<form method="post">
    <table class="table">
      <tr>
        <th></th>
        <th><u><a href="{% url "ordered_user_list" %}">Last Name</a></u></th>
        <th><u><a href="{% url "ordered_user_list_first" %}">First Name</a></u></th>
        <th style="width: 30%"><u><a href="{% url "ordered_user_list_email" %}">Email</a></u></th>
        <th><u>Phone</u></th>
      </tr>
    {% for user in object_list %}
        <tr>
        <td><input type="checkbox" name="emailList" value="{{user.id}}"></td>   
        <td><a href="{% url "user_info" user.id %}"> {{ user.lastName|capfirst }}</a></td>
        <td><a href="{% url "user_info" user.id %}">{{ user.firstName|capfirst }}</td>
        <td>{{ user.email }}</td>
        <td>{{ user.phone }}</td>
        </tr>
        {% endfor %}
    </table>
    {% csrf_token %}
    <input class = "btn btn-danger" type="submit" value="Email"/></form>
视图文件中的

class OrderedUserList(ListView):
   model = User

   template_name = "Schedule/ordered_user_list.html"


   def dispatch(self, *args, **kwargs):
    if not self.request.user.is_authenticated() or (not self.request.user.admin and not self.request.user.volunteer_coordinator):
        return forbidden()
    checked = request.POST.get('emailList')
    return super(OrderedUserList, self).dispatch(*args, **kwargs)

1 个答案:

答案 0 :(得分:0)

您可以使用&#39; set_cookie&#39;设置COOKIE(在您的视图中)来保存选择。然后你可以在你的会话中访问这个cookie,并在任何你想要的地方获取选择的值。但请记住1)cookie将你的选择保存为单个字符串,所以要小心你如何保存你的选择,这样就更容易提取它们稍后(使用字符串拆分方法)和2)它有一个缺点,这将是一个系统相关的解决方案,因为如果你在一个设备上保存cookie并尝试从其他设备/系统登录,则无法访问cookie。同时,希望这有帮助......