Django shell - некоторые наборы запросов пустые в оболочке, но они не должны быть пустыми
Я использую оболочку django shell для просмотра некоторых наборов запросов. Я могу получить все объекты Student
с помощью .all()
, но если я затем пытаюсь получить один объект с помощью .get()
или фильтровать по полю, я получаю пустые результаты. Проект вроде бы нормально работает в браузере (я все еще нахожусь в процессе написания всех тестов, но функционально он работает). Я могу успешно использовать get() или filter на поле с моей Objective
моделью.
Вот что я получаю с all()
:
>>> from gradebook.models import Student, Objective
>>> s = Student.objects.all()
>>> for i in s:
... print(i.student_first)
...
John
Sally
Keith
Terrance
Henry
Analise
Ron
>>>
Теперь, если я попытаюсь использовать get()
:
>>> qs = Student.objects.get(student_first='Analise')
Traceback (most recent call last):
gradebook.models.Student.DoesNotExist: Student matching query does not exist.
Или фильтр по полю:
>>> s.filter(student_first='Ron')
<QuerySet []>
>>>
Модель студента
class Student(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
user = models.OneToOneField(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
student_first = models.CharField(max_length=30)
student_last = models.CharField(max_length=30)
nickname = models.CharField(max_length=31)
fullname = models.CharField(max_length=60)
attend = models.BooleanField(default=True)
student_number = models.IntegerField()
email = models.EmailField(max_length=50)
def __str__(self):
return self.fullname