|
15鱼币
class Cs(object):
def __init__(self, request,ss,n="",pagesize=17,page="ym",plus=5
):
import copy
quer = copy.deepcopy(request.GET)
quer._mutable = True
self.quer = quer
self.page=page
def html(self):
pagestrlist = []
self.quer.setlist(self.page, [4])
print(urlencode(self.quer))
print(self.page)
pagestrlist.append('<li class="active"><a href="?ym={}">首页</a></li>'.format(1))
后台显示的数据是 q=ddq&1=4
正常的来说应该是 q=ddq&ym=4 这个ym是html可以正常获取的关键字
————————————————————————
而且
pagestrlist.append('<li class="active"><a href="?{}">首页</a></li>'.format(self.quer.urlencode())) 这个报错
File "D:\软件\djangoProject\venv\lib\site-packages\django\http\request.py", line 598, in <genexpr>
for v in list_
AttributeError: 'int' object has no attribute 'encode'
[14/May/2023 18:51:33] "GET /cs/?q=ddq HTTP/1.1" 500 192405
修改完在这个前台链接地址显示的是如下链接地址
pagestrlist.append('<li class="active"><a href="?{}">首页</a></li>'.format(urlencode(self.quer)))
http://127.0.0.1:8000/cs/?q=ddq&1=4
————————————————————————————————
但是我看视频为什么这个可以正常的使用呢
看起来链接已经生成正确了,那么问题可能出在你处理这个链接的后端代码上。当你点击这个链接,你的应用会收到一个GET请求,这个请求的query string中包含了"ym=4"。你的应用需要识别并正确处理这个参数。
如果你的应用没有正确处理这个参数,那么它可能会忽视这个参数,只返回第一页的数据。你需要检查一下你的视图函数或者控制器,看看它是如何处理这个参数的。
一般来说,你可能需要做的是这样的:
def my_view(request):
page_number = request.GET.get('ym', 1) # 如果没有提供ym参数,那么默认为1
page_number = int(page_number) # 将ym参数转换为整数
# 然后使用这个页码去查询数据库,返回相应的数据
如果你的应用使用的是Django的分页功能,那么你可以使用Paginator类来处理这个页码:
from django.core.paginator import Paginator
def my_view(request):
page_number = request.GET.get('ym', 1)
page_number = int(page_number)
items = MyModel.objects.all() # MyModel是你的数据模型
paginator = Paginator(items, 17) # 假设每页有17个元素
page = paginator.get_page(page_number) # 获取指定页码的数据
# 然后将这个page对象传递给模板
这样,你就可以根据链接中的ym参数返回正确的页面数据了。
|
最佳答案
查看完整内容
看起来链接已经生成正确了,那么问题可能出在你处理这个链接的后端代码上。当你点击这个链接,你的应用会收到一个GET请求,这个请求的query string中包含了"ym=4"。你的应用需要识别并正确处理这个参数。
如果你的应用没有正确处理这个参数,那么它可能会忽视这个参数,只返回第一页的数据。你需要检查一下你的视图函数或者控制器,看看它是如何处理这个参数的。
一般来说,你可能需要做的是这样的:
如果你的应用 ...
|