Django db-запрос не работает одинаково в views.py и shell
Я пытаюсь сгенерировать запрос, для которого я получаю ожидаемый результат в оболочке django, но для того же запроса я получаю сообщение об ошибке, что атрибут для модели не существует.
Сначала оболочка:
>>> from dbaccess.models import *
>>> applicantObject = Applicant.objects.get(pk=5)
>>> vol = VolInterview.objects.get(applicant=applicantObject)
>>> vol
<VolInterview: Rajon>
Из views.py
from models import *
def addIntCandidate(request):
applicants = Applicant.objects.filter(applicationStatus="Pending")
interviews = Interview.objects.all()
message = []
if request.method == 'POST':
applicant = request.POST.get('applicant')
...
# the value of applicant at this point is 5
applicantObject = Applicant.objects.get(pk=applicant)
prevRejected = VolInterview.objects.get(applicant=applicantObject)
...
Сообщение об ошибке:
type object 'VolInterview' has no attribute 'objects'
Проследить:
E:\projects_directory\djangoprojects\kpr-admin-db\dbaccess\views.py in addIntCandidate
prevRejected = VolInterview.objects.get(applicant=applicantObject)
Что я делаю неправильно?
1 ответ
Решение
Похоже, вы заменили VolInterview
с другим классом в ваших взглядах.
Чтобы проверить, вы можете добавить print(VolInterview)
на ваш взгляд и оболочку, и убедитесь, что вы получите одинаковый результат в обоих.
В Django распространено использование Form
в качестве суффикса для ваших классов формы, например VolInterviewForm
, чтобы имена моделей и форм не конфликтовали.