Аннотация не помогла
line_total(price, qty) считает стоимость позиции. qty приходит из формы и может быть
строкой ("2") или уже числом (2). Аннотация qty: int есть, а в корзине вместо 2998 ₽
появляется строка из двоек. Исправьте функцию — она должна всегда возвращать int.
Подсказка 1 из 2
Аннотация — подсказка, а не преобразование.
Подсказка 2 из 2
int() принимает и строку, и число.