Django - как отобразить всех пользователей, которые присутствуют?
Я создал систему посещаемости в Django, но не могу получить всех пользователей, которые присутствуют в данный момент.
Мой код показан ниже:
Модели:
class Meta:
model = User
fields = ("username", 'email', 'password1', 'password2')
class is_Present(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
date = models.DateField(default=datetime.date.today)
is_present = models.BooleanField(default=False)
class clocked_Time(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
date = models.DateField(default=datetime.date.today)
time = models.DateTimeField(null=True, blank=True)
signed_out = models.BooleanField(default=False)
views.py:
# Displays admin attendance portal functions
def attendance_portal(request):
if not request.user.is_authenticated:
messages.warning(request, f'Please sign in to mark attendance out')
return redirect('login')
elif not request.user.is_superuser or not request.user.is_staff:
messages.warning(request, f'Must be admin to access this feature')
return redirect('home')
elif request.user.is_superuser:
count_employees_all = count_employees() # shows count of employees
present_employee_all = present_employees() # shows count present employees today
present_employee_all_week = present_week_employees() # shows count present employees in last 7 days
# Gets the employees present today
today = datetime.today()
# Gets employees displayed and paginated
user = get_user_model()
user_list = user.objects.all()
p = Paginator(is_Present.objects.filter(date=today).filter(is_present=True).select_related('user').values('user__username'), 5)
page = request.GET.get('page', 1)
users = p.get_page(page)
try:
users = p.get_page(page) # returns the desired page object
except PageNotAnInteger:
# if page_number is not an integer then assign the first page
users = p.page(1)
except EmptyPage:
# if page is empty then return last page
users = p.page(p.num_pages)
# this_week_emp_count_vs_date()
# last_week_emp_count_vs_date()
return render(request, "users/adminReports.html",
{'count_employees_all': count_employees_all, 'present_employee_all': present_employee_all,
'present_employee_all_week': present_employee_all_week, 'user_list': user_list, 'users': users})
else:
messages.warning(request, f'Error - please see logs for details.')
return redirect(request, 'home')
HTML:
<div class="card" style="margin: 2em; background: lightcoral;border: solid 3px dimgrey; padding-bottom: 30px; width: 50%">
<div class="card-body">
<h4 style="text-align: center"> Employee's Present Today </h4><br />
{% for user in users %}
<table class="table align-left table-dark table-striped table-hover table-bordered">
<tbody>
<tr>
<td style="width: 25%;">{{ user.username }}</td>
</tr>
</tbody>
</table>
{% endfor %}
<div style="text-align: center;">
{%if users.has_previous %} {# whether the previous page exists #}
<a href="?page={{users.previous_page_number}}"><button class="btn btn-outline-dark btn-sm">«</button></a> {# link to the prev page #}
{% endif %}
<span>{{users.number}}</span> {# the current page number #}
{%if users.has_next %} {# whether the next page exists #}
<a href="?page={{users.next_page_number}}"><button class="btn btn-outline-dark btn-sm">»</button></a> {# link to the next page #}
{% endif %}
</div>
В настоящее время присутствует один пользователь, и кажется, что захватывает пользователя, когда вставляет одну строку таблицы, однако это не позволяет мне захватить имя пользователя и т.д. (пожалуйста, смотрите изображение)

Заранее спасибо!
Похоже, что user.username не получал ссылки достаточно далеко, я смог решить эту проблему, используя следующие ссылки:
user.user.username