我正在尝试筛选模板上API查询的结果,我有以下方法:
def profile(request):
parsedData = []
if request.method == 'POST':
username = request.POST.get('user')
req = requests.get('https://api.github.com/users/' + username + '/repos')
jsonList = []
jsonList=req.json()
for data in jsonList:
userData = {}
userData['html_url'] = data['html_url']
userData['created_at'] = data['created_at']
userData['updated_at'] = data['updated_at']
userData['forks_count'] = data['forks_count']
repo_instance = Repo.objects.create(name=data['html_url'],created_at=data['created_at'],updated_at=data['updated_at'],forks_count=data['forks_count'])
repos = Repo.objects.filter(updated_at__lt = timezone.now()).order_by('updated_at')
parsedData.append(userData)
return render(request, 'app/profile.html', {'data': parsedData})
例如,此方法将查询到如下地址
githubtraining
还将找到的每个存储库存储到数据库中。
现在,我想要的是,将从该查询获得的结果过滤到我的应用程序视图中,这是我在模板上的内容:
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped tablesorter">
<thead>
<tr>
<th class="header"> Url <i class="icon-sort"></i></th>
<th class="header"> Created at <i class="icon-sort"></i></th>
<th class="header"> Updated at <i class="icon-sort"></i></th>
<th class="header"> Forks count <i class="icon-sort"></i></th>
</tr>
</thead>
<tbody>
{% for key in data %}
<tr>
<td>{{ key.html_url }}</td>
<td>{{ key.created_at }}</td>
<td>{{ key.updated_at }}</td>
<td>{{ key.forks_count }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
如您所见,API返回带有一些JSON数据的repo,其中一项是
updated_at
。我需要的是按这些日期筛选结果查询,从最新更新到最旧更新(提交)。
我曾尝试将它们存储到db中,然后过滤结果,但这种方式不起作用,而且,我认为这不是最佳解决方案,因此,我需要在显示结果之前“捕获”它,然后将其过滤到我的视图(html)中。
有什么想法吗?
你可以参考这个
question
对于API响应