def post(self, request, **kwargs):
product = request.POST.get('product')
remove = request.POST.get('remove')
basket = request.session.get('basket')
if basket:
quantity = basket.get(product)
if quantity:
if remove:
if quantity <= 1:
basket.pop(product)
else:
basket[product] = quantity - 1
else:
basket[product] = quantity + 1
else:
basket[product] = 1
else:
basket = {product: 1}
request.session['basket'] = basket
print('basket', request.session['basket'])
return redirect('homepage')
if basket is not None
😂😂
это одна и таже проверка же
Это что типо: Если круглая земля - круглая то:
может я где то слеш не прописал?
Нет все правильно, просто он выдает 405 ошибку, обычно эта ошибка вылазит из за ограничения прав
Странно, потому что я авторизован
basket = request.session.get('basket', {product: 1})
А ты там пермишны не вешал?
нет
Странно
может надо добавить метод get?
https://www.python.org/dev/peps/pep-0008/#programming-recommendations
А у тебя его нету чтоле?
Тоже почитай
Если корзины вернёт True, то там по определению не будет None
Also, beware of writing if x when you really mean if x is not None -- e.g. when testing whether a variable or argument that defaults to None was set to some other value. The other value might have a type (such as a container) that could be false in a boolean context!
Если корзина вернет пустой словарь то он сработает как False
Пустой словарь это не None
Только выражение if backet: отреагирует также
Ему нужно чекать на забитый или пустой словарь, тобишь False или True, а причем тут None?
basket = request.session.get('basket') Что вернет метод get словаря если ключ не будет найден? Сам отвечу None
Он не вернёт none он будет ругаться на то что такого ключа нету
С чего ты это взял?
И код будет ломаться
Вылетала просто
Метод get сессии работает как метод get словаря
обычно многие разроботчики предпочитают писать if something:
Не, он о другом
Обсуждают сегодня