TypeError in view: Поле ожидало число, но получило SimpleLazyObject

Я обновился до django v3.1 и внезапно получил эту ошибку:

Поле id ожидало число, но получило .

Неудачная строка кода такова:

my_obj = get_object_or_404(MyModel, pk=kwargs.get('pk'))

Есть идеи, что я делаю неправильно?

Благодарность!

1 ответ

Решение

После некоторого поиска в Google я нашел этот пост Аарона О. Эллиса.

Уловка состоит в том, чтобы не использовать kwargs напрямую, но из класса представления с self:

my_obj = get_object_or_404(MyModel, pk=selfkwargs.get('pk'))

Надеюсь, это поможет и кому-то еще.

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