From 37cddf478cefae0a1c9b8688e4d3787523f9a4de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BE=9D=E7=91=AA=E8=B2=93?= Date: Wed, 1 Jul 2020 00:52:38 +0800 Subject: [PATCH] Changed the get_number_query() method to the get_query_number() function, so that it is shared by different view classes. --- accounting/views.py | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/accounting/views.py b/accounting/views.py index 4cb447e..d66e478 100644 --- a/accounting/views.py +++ b/accounting/views.py @@ -133,25 +133,27 @@ ORDER BY self.kwargs["subject_code"] + "%"]) pagination = Pagination( len(records), - self.get_number_query("page"), - self.get_number_query("page-size"), + get_query_number(self.request, "page"), + get_query_number(self.request, "page-size"), True) start_no = pagination.page_size * (pagination.page_no - 1) return records[start_no:start_no + pagination.page_size] - def get_number_query(self, name): - """Returns a positive number query parameter. - Args: - name (str): The name of the query parameter +def get_query_number(request, name): + """Returns a positive number query parameter. - Returns: - The parameter value, or None if this parameter does not - exist or is not a positive number - """ - if name not in self.request.GET: - return None - elif not re.match("^[1-9][0-9]*$", self.request.GET[name]): - return None - else: - return int(self.request.GET) + Args: + request (HttpRequest): The HTTP request + name (str): The name of the query parameter + + Returns: + The parameter value, or None if this parameter does not + exist or is not a positive number + """ + if name not in request.GET: + return None + elif not re.match("^[1-9][0-9]*$", request.GET[name]): + return None + else: + return int(request.GET)