Объект 'verifyForm' не имеет атрибута 'прием'

У меня есть страница, на которой пользователь может ввести номер приема, поэтому, когда пользователь вводит номер приема, он должен проверить в базе данных, существует ли номер приема, но у меня возникает эта ошибка: 'verifyForm' object has no attribute 'reception'. Как мне решить эту ошибку? Обновлено с ошибкой трассировки

views.py

@login_required()
def verifydetails(request):
    if request.method == 'POST':
        #Customername = request.GET['Customername']
        form = AddForm(request.POST or None)

        if form.reception == Photo.reception:
            messages.success(request, 'Both Reception and customer name match')
            return redirect('AddMCO')

        else:
            messages.success(request, 'Both Reception and customer do not match')
            return redirect('verifydetails')


    else:
        form = AddForm()

    return render(request, 'verifydetails.html', {'form': form, })

forms.py

class verifyForm(forms.Form):
    reception = forms.CharField(label='',
                              widget=forms.TextInput(
                                  attrs={"class": 'form-control', 'placeholder': 'Enter Reception number'}))

    class meta:
        model = Photo
        fields = ('reception')

verifydetails.html

ошибка возврата в моем коде выглядит так:

Environment:


Request Method: POST
Request URL: http://127.0.0.1:8000/verifydetails/

Django Version: 2.2.20
Python Version: 3.8.0
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'account.apps.AccountConfig',
 'crispy_forms']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django_session_timeout.middleware.SessionTimeoutMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "C:\Users\TAY\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\exception.py" in inner
  34.             response = get_response(request)

File "C:\Users\TAY\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\base.py" in _get_response
  115.                 response = self.process_exception_by_middleware(e, request)

File "C:\Users\TAY\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\base.py" in _get_response
  113.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Users\TAY\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\contrib\auth\decorators.py" in _wrapped_view
  21.                 return view_func(request, *args, **kwargs)

File "E:\Role_based_login_system-master\account\views.py" in verifydetails
  496.                 if form.reception == Photo.reception:

Exception Type: AttributeError at /verifydetails/
Exception Value: 'verifyForm' object has no attribute 'reception'

form = AddForm(request.POST or None) В этой строке говорится, что form также может быть None, если объект не найден.


Вы пытаетесь выполнить эту строку if form.reception == Photo.reception: перед тем, как проверить, действительна ли форма или None.


Чтобы решить эту проблему, сделайте что-то вроде:

if form:
    if form.reception == Photo.reception:
         ........
else(optional):
    print("the object doesn't exist")

Измените form.reception на form.cleaned_data["reception"]

Вернуться на верх