def qbe_results(request, query_hash): query_key = "qbe_query_%s" % (query_hash or "") if query_key in request.session: query_key = "qbe_query_%s" % query_hash data = request.session[query_key] else: return redirect("qbe_form") db_alias = data.get("database_alias", "default") if db_alias in DATABASES: request.session["qbe_database"] = db_alias else: db_alias = request.session.get("qbe_database", "default") formset = QueryByExampleFormSet(data=data, using=db_alias) if formset.is_valid(): row_number = getattr(settings, 'QBE_SHOW_ROW_NUMBER', True) admin_name = getattr(settings, "QBE_ADMIN", "admin") aliases = getattr(settings, 'QBE_ALIASES', False) labels = formset.get_labels(row_number=row_number, aliases=aliases) count = formset.get_count() limit = count try: page = int(request.GET.get("p", 0)) except ValueError: page = 0 if not request.GET.get("show", None): try: limit = int(data.get("limit", 100)) except ValueError: limit = 100 offset = limit * page results = formset.get_results(limit=limit, offset=offset, admin_name=admin_name, row_number=row_number) query = formset.get_raw_query(add_params=True) pickled = pickle_encode(data) context = { 'formset': formset, 'title': _(u"Query by Example"), 'results': results, 'labels': labels, #'query': query, 'count': count, 'limit': limit, 'page': page, 'offset': offset + 1, 'offset_limit': offset + limit, 'pickled': pickled, 'query_hash': query_hash, 'admin_urls': (admin_name != None and formset.has_admin_urls()), 'formats': formats, 'savedqueries_installed': 'django_qbe.savedqueries' in settings.INSTALLED_APPS, 'QBE_MENU_EDIT': getattr(settings, 'QBE_MENU_EDIT', False), 'QBE_SHOW_BREADCRUMBS': getattr(settings, 'QBE_SHOW_BREADCRUMBS', True) } return render(request, 'qbe_results.html', context) return redirect("qbe_form")
def qbe_results(request, query_hash): query_key = "qbe_query_%s" % (query_hash or "") if query_key in request.session: query_key = "qbe_query_%s" % query_hash data = request.session[query_key] else: return redirect("qbe_form") db_alias = data.get("database_alias", "default") if db_alias in DATABASES: request.session["qbe_database"] = db_alias else: db_alias = request.session.get("qbe_database", "default") formset = QueryByExampleFormSet(data=data, using=db_alias) if formset.is_valid(): row_number = QBE_SHOW_ROW_NUMBER admin_name = QBE_ADMIN aliases = QBE_ALIASES labels = formset.get_labels(row_number=row_number, aliases=aliases) count = formset.get_count() limit = count try: page = int(request.GET.get("p", 0)) except ValueError: page = 0 if not request.GET.get("show", None): try: limit = int(data.get("limit", 100)) except ValueError: limit = 100 offset = limit * page results = formset.get_results(limit=limit, offset=offset, admin_name=admin_name, row_number=row_number) query = formset.get_raw_query(add_params=True) pickled = pickle_encode(data) title_url = reverse("qbe_form") saved_query = None if QBE_SAVED_QUERIES: title_url = reverse("admin:app_list", args=["savedqueries"]) from django_qbe.savedqueries.models import SavedQuery saved_queries = SavedQuery.objects.filter(query_hash=query_hash) saved_query = saved_queries.first() context = { 'formset': formset, 'title': _(u"Query by Example"), 'title_url': title_url, 'saved_query': saved_query, 'results': results, 'labels': labels, 'query': query, 'count': count, 'limit': limit, 'page': page, 'offset': offset + 1, 'offset_limit': offset + limit, 'pickled': pickled, 'query_hash': query_hash, 'admin_urls': admin_name is not None and formset.has_admin_urls(), 'formats': formats, 'savedqueries_installed': QBE_SAVED_QUERIES, 'aliases_enabled': QBE_ALIASES, 'group_by_enabled': QBE_GROUP_BY } return render(request, 'qbe_results.html', context) return redirect("qbe_form")