Найти - Пользователи
Полная версия: Помощь с переменными во фласк
Начало » Web » Помощь с переменными во фласк
1
D7size
Доброго дня , проблема глупая но не могу найти решения.

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

У меня есть корзина покупок, она храниться в сессии как словарь, но когда я попадаю на страницу редактирования, заказов при изменениее кол-во товара( если имя состоит более чем из одного слова) два берет только превое, если три то вообще пустую строку, в шаблоне 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
Народ ни кто не поможет?
py.user.next
Слишком мало ты информации дал. Выложи весь скрипт и весь шаблон. Где рендеринг происходит, сам не видишь что ли? Крупицы выложил какие-то и к ним набор слов про батон.
D7size
Вот уважаемые сам скрипт , прошу не осквернять мой кашакод первое творение

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

 <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 слов вообще ни хрена, а на страницы заказа все отраюатывает четко и как надо заноситься в сессию

Если изменяю значения
py.user.next
Начни с того, что в шаблон передай строку, которая делается из словаря 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'е и есть ли там эти слова, которые в словаре через пробел идут.
D7size
они там и так выводяться домой приду наглядно на скрине покажу
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB