Уведомления

Группа в Telegram: @pythonsu

#1 Март 21, 2022 14:31:52

D7size
Зарегистрирован: 2022-03-21
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Помощь с переменными во фласк

Доброго дня , проблема глупая но не могу найти решения.

Чтоб было понятнее есть Батон молочный записывается правильно из страницы покупок, вывоидтся на страницу предзаказа правильно, но при изменеии режиться остаеться только батон без молочный.

У меня есть корзина покупок, она храниться в сессии как словарь, но когда я попадаю на страницу редактирования, заказов при изменениее кол-во товара( если имя состоит более чем из одного слова) два берет только превое, если три то вообще пустую строку, в шаблоне 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
    # -----------------------------------------------------------------------------

Когда после отправки изменений , я вылавливаю только первое слово если название состоит из 2, 3 вообще ни чего.

Не подскажите в чем причина

Отредактировано D7size (Март 21, 2022 14:35:15)

Офлайн

#2 Март 22, 2022 12:04:58

D7size
Зарегистрирован: 2022-03-21
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Помощь с переменными во фласк

Народ ни кто не поможет?

Офлайн

#3 Март 22, 2022 21:28:19

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9842
Репутация: +  853  -
Профиль   Отправить e-mail  

Помощь с переменными во фласк

Слишком мало ты информации дал. Выложи весь скрипт и весь шаблон. Где рендеринг происходит, сам не видишь что ли? Крупицы выложил какие-то и к ним набор слов про батон.



Отредактировано py.user.next (Март 22, 2022 21:28:50)

Офлайн

#4 Март 23, 2022 11:00:03

D7size
Зарегистрирован: 2022-03-21
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Помощь с переменными во фласк

Вот уважаемые сам скрипт , прошу не осквернять мой кашакод первое творение

шаблон изменение заказа

 <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)

Содержания словари сеесии примерно такое
% = {'dasd saddas asdasda' =40,
‘adsda’ = 10,
‘'aaa aaa’ = 5}

При изменении aaa aaa попадает в имя ключа тока первое слово, если ключ состоит из 3 слов вообще ни хрена, а на страницы заказа все отраюатывает четко и как надо заноситься в сессию

Если изменяю значения

Офлайн

#5 Март 23, 2022 13:13:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9842
Репутация: +  853  -
Профиль   Отправить e-mail  

Помощь с переменными во фласк

Начни с того, что в шаблон передай строку, которая делается из словаря basket. А в самом шаблоне сделай div, в котором выведи эту строку. Так ты узнаешь, на каком этапе теряются слова.

D7size
  
return 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%">

Для начала выполни это и посмотри, что выводится в div'е и есть ли там эти слова, которые в словаре через пробел идут.



Отредактировано py.user.next (Март 23, 2022 13:13:51)

Офлайн

#6 Март 23, 2022 15:02:36

D7size
Зарегистрирован: 2022-03-21
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

Помощь с переменными во фласк

они там и так выводяться домой приду наглядно на скрине покажу

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version