在Django中,我正在编写一个处理来自页面的GET请求的视图索引.html并将请求呈现到另一个页面匹配_列表.html. 页面索引.html有多个复选框可以修改匹配时显示的数据_列表.html. 在
此时,我的代码会询问GET请求以确定每个复选框的值,然后将这些值添加到页面匹配列表中呈现的上下文中。这种方法显然是“不和谐”的,令人不满意。有人能建议我如何改进我的代码吗?在
from django.shortcuts import render
from .models import Pl1516
from .parse import parse_load
def index(request):
if not request.GET.get('hometeam'):
return render(request, 'main/index.html')
else:
hometeam_filter = request.GET.get('hometeam')
ht_filter = request.GET.get('HT')
htr_filter = request.GET.get('HTR')
ftr_filter = request.GET.get('FTR')
matches = Pl1516.objects.filter(hometeam=hometeam_filter)
if matches.count() < 19:
parse_load(hometeam_filter)
context_dict = {'ht_filter': ht_filter, 'ftr_filter': htr_filter, 'htr_filter': htr_filter, 'matches' : matches}
return render(request, 'main/match_listings.html', context_dict)
也许有更好的方法可以做到这一点,但我在类似的例子中使用了字典理解法来一次性完成:
由于您似乎是在附加“_filter”后将键修改为更低,因此如果需要,可以按如下方式进行修改:
^{pr2}$之后,您可以添加
matches
键:你在快乐的路上。在
因此,您有两种观点:
index.html
match_listings.html
这看起来像是常规的URL路由。在
在客户端,不是附加查询字符串,而是调用另一个URL。或者,如果仍然需要支持查询字符串url:
^{pr2}$如果
parse_load
真的进行分页,请考虑使用Django的内置分页(应该尽可能使用Django)。在在一般的观点中,有很多好东西,imho,一开始可能不那么明显。比如当URL变量没有DB条目时自动返回404,分页等等
https://docs.djangoproject.com/en/1.10/topics/class-based-views/mixins/#using-singleobjectmixin-with-listview
相关问题 更多 >
编程相关推荐