筛选 JSON 结果 - Django 1.8 - Github API v3
Filter JSON results - Django 1.8 - Github API v3
我正在尝试过滤模板上 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 returns 带有一些 JSON 数据的回购,其中一项是 updated_at
。我需要的是按这些日期过滤生成的查询,从最新到最旧的更新(提交)。
我试过将它们存储到数据库中,然后过滤结果,但它不是这样工作的,而且,我认为这不是最佳解决方案,所以,我需要 "capture" 结果在显示之前,然后将其过滤到我的视图中 (html)。
有什么想法吗?
您可以参考此 以获得API 回复
您应该像这样(使用 -)在您的查询集上应用订单:
repos = Repo.objects.filter(updated_at__lt = timezone.now()).order_by('-updated_at')
我正在尝试过滤模板上 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 returns 带有一些 JSON 数据的回购,其中一项是 updated_at
。我需要的是按这些日期过滤生成的查询,从最新到最旧的更新(提交)。
我试过将它们存储到数据库中,然后过滤结果,但它不是这样工作的,而且,我认为这不是最佳解决方案,所以,我需要 "capture" 结果在显示之前,然后将其过滤到我的视图中 (html)。
有什么想法吗?
您可以参考此
您应该像这样(使用 -)在您的查询集上应用订单:
repos = Repo.objects.filter(updated_at__lt = timezone.now()).order_by('-updated_at')