1.前端代码:
<div class="row" style="padding-top: 80px;">
<div class="col-md-6">
<table class="table table-striped">
<thead>
<tr>
<th>id</th><th>名称</th><th>状态</th><th>地址</th><th>时间</th><th>签到</th><th>签到进度</th>
</tr>
</thead>
<tbody>
<!--通过Django模板语言,循环打印发布的id、name、status、address、和start_time等字段。
Django模板语言与Python语言并非完全一样。for循环语句需要有 对应的endfor来表示语句的结束;
同样,if分支语句也需要有endif来表示语句的结束。-->
{% for event in events %}
{% for k,v in Result.items %}
{% if event.id == k %}
<tr>
<td>{{ event.id }}</td>
<td>{{ event.name }}</td>
<td>{{ event.status }}</td>
<td>{{ event.address }}</td>
<td>{{ event.start_time }}</td>
<td>
<a href="/sign_index/{{ event.id }}/" target="{{ event.id }}_blank">签到</a>
</td>
<td>{{ v }}</td>
</tr>
{% endif %}
{% endfor %}
{% endfor %}
</tbody>
</table>
</div>
</div>
2.后台代码:
#发布会管理界面
@login_required
def event_manage(request):
event_list = Event.objects.all()
ResultDict = {}
for event in event_list:
eid = event.id
result = Guest.objects.filter(event_id=eid).values()
Sign_All_Falg = len(result)
Sign_True_Falg = len(re.findall( "'sign': True,",str(result)))
result = "{}/{}".format(Sign_True_Falg,Sign_All_Falg)
ResultDict[eid] = result
username = request.session.get("user","") #读取浏览器session
return render(request, "event_manage.html", {"user":username,"events":event_list,"Result":ResultDict})
3.实际效果: