2016-01-08 2 views
0

Я пытаюсь сгенерировать запрос, для которого я получаю ожидаемый результат в оболочке django, но для одного и того же запроса у меня возникает ошибка, согласно которой атрибут для модель не существует.Django db query не ведет себя одинаково в views.py и shell

Первая оболочка:

>>> 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' 

Traceback:

E:\projects_directory\djangoprojects\kpr-admin-db\dbaccess\views.py in addIntCandidate 
        prevRejected = VolInterview.objects.get(applicant=applicantObject) 

Что я делаю неправильно?

+0

Не могли бы вы заменить 'VolInterview' другим классом в ваших views.py? Чтобы проверить, добавьте 'print (VolInterview)' к вашему виду и оболочке и убедитесь, что вы получите тот же результат. – Alasdair

+0

Я фактически импортировал другую форму с тем же именем. Спасибо за указание. Не могли бы вы разместить в разделе ответа, чтобы я мог принять его? – Roy

+0

@Alasdair, могу ли я привести меня к тому, как я мог бы объединить оба запроса в один? -> contestObject = Applicant.objects.get (pk = заявитель) и prevRejected = VolInterview.objects.get (заявитель = partnerObject) – Roy

ответ

1

Похоже, вы заменили VolInterview с другим классом в своих представлениях.

Чтобы проверить, вы можете добавить print(VolInterview) к вашему виду и оболочке и проверить, что вы получите тот же результат в обоих.

В Django обычно используется Form как суффикс для классов форм, например. VolInterviewForm, так что имена модели и формы не сталкиваются.

Смежные вопросы