Django возвращает пустой QuerySet, несмотря на совпадение имен

У меня есть модель Employee, где одним из полей является manager, которое является ForeignKey к другой модели под названием Manager.
Я проверяю, совпадает ли значение менеджера, которое я передаю через предыдущую страницу, с объектом Employee, у которого есть тот же менеджер, и хочу получить только те объекты, у которых менеджер совпадает. Однако, несмотря на то, что у меня есть сотрудники, у которых разные менеджеры, я пытаюсь фильтровать с помощью Employee.objects.get(manager=manager) или Employee.objects.filter(manager=manager), и ни один из них ничего не возвращает.
filter возвращает пустой набор запросов, а get говорит Employee matching query does not exist., несмотря на явное совпадение. Любая помощь будет оценена по достоинству, спасибо!

КОД
views.py

from django.shortcuts import render, redirect
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from django.utils import timezone
from .models import Attendance
from .models import Employee, Manager
from datetime import datetime



employee_list = ["John", "Jane", "Jacob", "Mark", "Jingleheimer", "Rob", "Schmidt"]

# Create your views here.
@login_required
def home(request):
    return render(request, 'index.html')

@login_required
def attendance(request):
    manager_list = Manager.objects.all()
    now = timezone.now().date
    status = 0
    for manager in manager_list:
        if ' ' in manager.name:
            manager.select_name = manager.name.replace(' ', '_')
        else:
            pass
    if request.method == 'POST':
        manager = request.POST.get('manager')
        print(manager)
        return redirect('mark_attendance', manager=manager)
    return render(request, 'attendance.html', {
        "date": now,
        "status": status,
        "manager_list": manager_list,
    })

@login_required
def mark_attendance(request, manager):
    print(manager) ##prints out the Manager object right
    employee_list = Employee.objects.get(manager=manager)
    print(employee_list)
    if request.method == "POST":
        for employee in employee_list:
            print(employee.pk)
            decision = request.POST.get(f'decision_{employee.pk}')
            print(decision)
            status = Attendance(employee=employee, date=datetime.now(), status=decision)
            status.save()
        return HttpResponseRedirect('mark_attendance')
    else:
        return render(request, 'mark_attendance.html', {
            "employee_list": employee_list,
        })

models.py

from django.db import models
import math
from django.core.validators import MinValueValidator, MaxValueValidator
from django.contrib.auth.models import AbstractUser
from django.db.models.signals import post_save, post_delete
from datetime import timedelta

# Create your models here.
class User(AbstractUser):
    pass

class Manager(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
    id = models.CharField(primary_key=True, max_length=100)
    name = models.CharField(max_length=100)

class Employee(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, null=True)
    employee_id = models.CharField(primary_key='True', max_length=100)
    name = models.CharField(max_length=200)
    manager = models.ForeignKey(Manager, on_delete=models.CASCADE, null=True)

    def __str__(self):
        return self.name

class AssignTime(models.Model):
    day = models.CharField(max_length=15)

class Attendance(models.Model):
    employee = models.ForeignKey(Employee, on_delete=models.CASCADE)
    date = models.DateField(default='2018-10-23')
    status = models.BooleanField(default=False, choices=(
        (False, "Absent"),
        (True, "Present"),
    ))

    def __str__(self):
        sname = Employee.objects.get(name=self.employee)
        return '{0}'.format(sname.name)

class AttendanceRange(models.Model):
    start_date = models.DateField()
    end_date = models.DateField()
Вернуться на верх