根据Django中的用户组成功搜索用户后,无法保留表单过滤器值

时间:2018-09-30 13:41:33

标签: django django-queryset

我能够成功搜索安全用户组。但是,在按下搜索按钮时,搜索值随搜索结果消失。我希望将搜索值保留​​在搜索字段中,直到我手动将其删除或刷新页面为止。

我正在覆盖django admin组模型,这是我要从UserListView搜索的字段。

models.py:

class User(AbstractBaseUser, PermissionsMixin):
    ...
    groups              = models.ForeignKey(Group, on_delete=models.CASCADE, related_name='user_group', blank=True, null=True)

views.py

class UsersListView(AdminRequiredMixin, TemplateView):
    model = User
    context_object_name = "users"
    template_name = "list.html"

    def get_queryset(self):
        queryset = self.model.objects.all().select_related("groups")
        request_post = self.request.POST
        if request_post:
            if request_post.get('groups'):
                queryset = queryset.filter(groups_id=request_post.get('groups'))
        return queryset

    def get_context_data(self, **kwargs):
        context = super(UsersListView, self).get_context_data(**kwargs)
        context["groups_list"] = User.objects.all()
        return context

模板: 这就是我在模板中搜索分组字段的方式。

HTML代码:

              <div class="filter_col col-4">
                <div class="form-group">
                  <label for="exampleInputEmail1">User Group</label>
                  <select class="form-control" id="id_groups" name="groups">
                    <option value="" selected="selected">--Select an User Group--</option>
                    {% for group in groups_list %}
                    <option value="{{group.groups.id}}" {%ifequal group.groups.id request.POST.group.groups|add:"0"%} selected {%endifequal%}>{{ group.groups.name }}</option>
                    {% endfor %}
                  </select>
                </div>
              </div>

当我在搜索过滤器中选择安全组选项(管理员,员工等)并按搜索按钮时,有人可以帮忙吗?搜索成功后,将过滤具有该特定安全组的所有用户。但是,我丢失了过滤器中的搜索值。我想保留它。请帮助我了解我在这里想念的东西。

0 个答案:

没有答案