Форум сайта python.su
Доброго дня , проблема глупая но не могу найти решения.
Чтоб было понятнее есть Батон молочный записывается правильно из страницы покупок, вывоидтся на страницу предзаказа правильно, но при изменеии режиться остаеться только батон без молочный.
У меня есть корзина покупок, она храниться в сессии как словарь, но когда я попадаю на страницу редактирования, заказов при изменениее кол-во товара( если имя состоит более чем из одного слова) два берет только превое, если три то вообще пустую строку, в шаблоне jinja2
<td colspan="3" align="center" style="opacity: 0.4"> <b>Текущая номенклатура</b> </td> </tr> <tr style="opacity: 0.8"> <td>Наименование :</td> <td>Колличество :</td> <td>Измениьть:</td> </tr><br /> {% for i,j in tItem.items() %} <tr style="opacity: 0.8"> <td>{{ i }}</td> <td>{{ j }}</td> <td><input type="text" name= {{ i }} value= {{ j }}></td> </tr><br /> {% endfor %}
# ----------------------------------------------------------------------------- """ При нажатии вносим измения в корзину что в сессии """ if request.method == "POST": if 'Изменить' == request.form.get('chngOrd'): for key, value in request.form.items(): if key != ('chTrack' or 'chClient'): basket[key] = value # -----------------------------------------------------------------------------
Отредактировано D7size (Март 21, 2022 14:35:15)
Офлайн
Народ ни кто не поможет?
Офлайн
Слишком мало ты информации дал. Выложи весь скрипт и весь шаблон. Где рендеринг происходит, сам не видишь что ли? Крупицы выложил какие-то и к ним набор слов про батон.
Отредактировано py.user.next (Март 22, 2022 21:28:50)
Офлайн
Вот уважаемые сам скрипт , прошу не осквернять мой кашакод первое творение
шаблон изменение заказа
<div id="edit" style="margin-top:10%"> <form method="post"> <table width="50%" align="top" style="margin-left: 25%"> <tr> <td colspan="3" align="center" style="opacity: 0.4"> <b>Редактирование текущего заказа</b> </td> </tr> <tr style="opacity: 0.8"> <td>Маршрут</td> <td>{{ nTrack }}</td> <td><input type="text" id="chTrack" name="chTrack" value= {{ nTrack }}></td> </tr> <tr style="opacity: 0.8"> <td>Магазин</td> <td>{{ nClient }}</td> <td><input type="text" name="chClient" id="chClient" value={{ nClient }}></td> </tr> <tr> <td colspan="3" align="center" style="opacity: 0.4"> <b>Текущая номенклатура</b> </td> </tr> <tr style="opacity: 0.8"> <td>Наименование :</td> <td>Колличество :</td> <td>Измениьть:</td> </tr><br /> {% for i,j in tItem.items() %} <tr style="opacity: 0.8"> <td>{{ i }}</td> <td>{{ j }}</td> <td><input type="text" name= {{ i }} value= {{ j }}></td> </tr><br /> {% endfor %} <tr align="center" style="opacity: 0.8"> <td align="center"><input type="reset" value="Отменить" align="center"></td> <td align="center">Сбросить заказ</td> <td align="center"><input type="submit" value="Изменить" name="chngOrd" align="center"></td> </tr> </table> </form> </div>
# ----------------------------------------------------------------------------- """ Редактирование заказов """ # ----------------------------------------------------------------------------- @app.route('/changeOrder', methods=['POST', 'GET']) def changeOrder(): # ----------------------------------------------------------------------------- if not 'isLogIn' in session: return 'Вы не вошли под своей учетной записью.' # ----------------------------------------------------------------------------- """ Устанавливаем переменные """ basket = session['karzina'] nClient = session['clientNow'] nTrack = session['track'] # ----------------------------------------------------------------------------- """ При нажатии вносим измения в корзину что в сессии """ if request.method == "POST": if 'Изменить' == request.form.get('chngOrd'): for key, value in request.form.items(): if key != ('chTrack' or 'chClient'): basket[key] = value session.modified = True # ----------------------------------------------------------------------------- """ Генерация старницы из шаблоны """ title = 'Хлебный двор : изменение заказа' return render_template('changeOrder.html', title=title, tItem=basket, nTrack=nTrack, nClient=nClient)
Офлайн
Начни с того, что в шаблон передай строку, которая делается из словаря basket. А в самом шаблоне сделай div, в котором выведи эту строку. Так ты узнаешь, на каком этапе теряются слова.
D7sizereturn render_template('changeOrder.html', title=title, tItem=basket, nTrack=nTrack, nClient=nClient)
return render_template('changeOrder.html', title=title, tItem=basket, nTrack=nTrack, nClient=nClient, bstr=repr(basket))
D7size<div id="edit" style="margin-top:10%"> <form method="post"> <table width="50%" align="top" style="margin-left: 25%">
<div id="edit" style="margin-top:10%"> <div>{{ bstr }}</div> <form method="post"> <table width="50%" align="top" style="margin-left: 25%">
Отредактировано py.user.next (Март 23, 2022 13:13:51)
Офлайн
они там и так выводяться домой приду наглядно на скрине покажу
Офлайн