【问题标题】:How to save class results in django cache and use it in other class如何将类结果保存在 django 缓存中并在其他类中使用
【发布时间】:2019-11-25 08:07:01
【问题描述】:

HTML 搜索文件

    <div class="content-section">
        <h1 class="mb-3">{{ user.username }}</h1>
            <form method="GET" action="{% url 'doctor:search' %}">
                <input name ="q" value="{{request.GET.q}}" placeholder="search..">
                <button class="btn btn-success" type="submit">
                    Search
                </button>
            </form>
    </div>

VIEWS.py 我喜欢将“查询”值保存在缓存中,稍后在不同的views.py 类中使​​用它

class SearchResultsView(ListView):
        model = User
        template_name = 'all_users/doctor/search.html'

    def get_queryset(self):  # new
      *query = self.request.GET.get('q')*
        object_list = User.objects.filter(Q(username__icontains=query))
        return object_list

【问题讨论】:

  • 你能提供更多关于你想要达到的目标的细节吗?
  • 我正在尝试在views.py的其他类中使用查询值 [query = self.request.GET.get('q')]

标签: django


【解决方案1】:

您可以使用render_to_response 来返回多个这样的对象:

def get_queryset(self):  # new
    query = self.request.GET.get('q')
    object_list = User.objects.filter(Q(username__icontains=query))
    another_object_list = Doctor.objects.filter(Q(username__icontains=query))
    context = {
    'object_list': object_list,
    'another_object_list': another_object_list
    }
    return render_to_response('search.html', context)

你可以在你的模板中调用这个上下文:

{{ 对象列表 }} {{ another_object_list }}

【讨论】:

  • 这不是我需要的。我有多个使用def get_queryset(self): query = self.request.GET.get('q') object_list = User.objects.filter(Q(username__icontains=query)) return object_list 的类。我想在那些类中使用查询值而不再次使用 html 模板。我喜欢获取一次查询值query = self.request.GET.get('q') 并在其他类中使用它而不在其他类中再次使用query = self.request.GET.get('q')
  • 基本上我想使用一个 html 文件来获取一次 [[[ query = self.request.GET.get('q') ]]] 并在所有其他类中使用此查询值
猜你喜欢
  • 2012-07-24
  • 2011-07-01
  • 2022-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 2014-04-17
  • 2011-06-05
相关资源
最近更新 更多