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, чтобы имена моделей и форм не конфликтовали.

Другие вопросы по тегам