我是django的一个新手,很抱歉这个问题如此琐碎。有人能告诉我get\u queryset()和get\u context\u data()函数之间的关系吗。你知道吗
我有大海捞针。我正在努力使“startswith”搜索工作。当我查找索引的完整单词时,我可以在get\u queryset和context中的object\u列表中找到该单词。但是当我查找这个单词的前3个字母时,我可以看到get\u queryset()找到了它,但是上下文中的object\u列表是空的。这两个功能如何工作,为什么我有不同的搜索结果。你知道吗
例如:在数据库中,我有一个类似“nametookfor”的名称 当我搜索“nametookfor”时,一切都很好。 但当我搜索“name”时,get\u queryset可以找到它,但它不在上下文中
我的观点:
class MainPageView(SearchView):
""" View for main page """
template_name = "index.html"
form_class = PersonalSearchForm
model = PersonalProfileModel
@method_decorator(never_cache)
@method_decorator(csrf_protect)
@method_decorator(sensitive_post_parameters())
def dispatch(self, *args, **kwargs):
return super(MainPageView, self).dispatch(*args, **kwargs)
def post(self, request):
pass
def get_context_data(self, **kwargs):
context = super(MainPageView, self).get_context_data(**kwargs)
print context
return context
def get_queryset(self):
form_class = PersonalSearchForm
# further filter queryset based on some set of criteria
queryset = super(MainPageView, self).get_queryset()
form = form_class(self.request.GET or None)
if form.is_valid():
qr = form.cleaned_data['q']
print qr
queryset = queryset.filter(name__startswith=qr)
object_list = self.model.objects.filter(name__startswith=qr)
print queryset
return queryset
形式:
class PersonalSearchForm(SearchForm):
def search(self):
sqs = super(PersonalSearchForm, self).search()
if not self.is_valid():
return self.no_query_found()
return sqs
目前没有回答
相关问题 更多 >
编程相关推荐