Ошибка в функции "аргумент int () должен быть строкой" - PullRequest
0 голосов
/ 12 декабря 2018

У меня проблемы со следующим кодом в моем проекте Django.Кто-нибудь знает, что не так?

Тип исключения: TypeError at / tasks / 2/3 / Значение исключения: аргумент int () должен быть строкой, байтовоподобным объектом или числом, а не 'DeferredAttribute'

(Django 2.1)

def step_detail(request, task_pk, step_pk):
    user = request.user
    steps = Step.objects.filter(task_id=task_pk)
    step = get_object_or_404(Step, task_id=task_pk, pk=step_pk)
    next = ""
    if int(Step.step_number) < len(steps):
        next = "/%s/%s/" % (task_pk, int(step_pk) + 1)
        user.userprofile.current_step.update(step_pk)
    else:
        next = "/task_done/"
        user.userprofile.current_step.update(step_pk)
        user.userprofile.daily_task_done_time(datetime.datetime.now())
    if request.POST:
        if "nextstep" in request.POST:
            return redirect(request.POST.get('next'))

    return render(request, 'dailytask/step_detail.html', {'step': step})

Среда:

Метод запроса: GET URL запроса: http://127.0.0.1:8000/tasks/2/3/

Версия Django:2.1.1 Версия Python: 3.7.1. Установленные приложения: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages ',' django.contrib.staticfiles ',' dailytask ',' account '] Установленное промежуточное ПО: [' django.middleware.security.SecurityMiddleware ',' django.contrib.sessions.middleware.SessionMiddleware ',' django.middleware.common.CommonMiddleware ',' django.middleware.csrf.CsrfViewMiddleware ',' django.contrib.auth.middleware.AuthenticationMiddleware ',' django.contrib.messages.middleware.MessageMiddleware.jj '1014 *

Трассировка:

Файл "/Users/iamsuccessful/eb-virt/lib/python3.7/site-packages/django/core/handlers/exception.py" во внутреннем 34. response = get_response (запрос)

Файл "/Users/iamsuccessful/eb-virt/lib/python3.7/site-packages/django/core/handlers/base.py" в _get_response 126. response = self.process_exception_by_middleware (e, request)

Файл "/Users/iamsuccessful/eb-virt/lib/python3.7/site-packages/django/core/handlers/base.py" в _get_response 124. response = wrapped_callback (запрос, * callback_args, ** callback_kwargs)

Файл "/Users/iamsuccessful/eb-virt/lib/python3.7/site-packages/django/contrib/auth/decorators.py" в _wrapped_view 21. вернуть view_func (request, * args, **kwargs)

Файл "/Users/iamsuccessful/ebdjango/dailytask/views.py" в step_detail 60. if int (Step.step_number)

ИсключениеТип: TypeError в / tasks / 2/3 / Exception Значение: аргумент int () должен быть строкой, байтовоподобным объектом или числом, а не DeferredAttribute

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...