Latest posts on странности с переменными при передаче из шаблона во view topichttp://python.su/forum/topic/34071/2017-11-14T12:36:02+02:00Веб-технологии :: Django :: странности с переменными при передаче из шаблона во view
2017-11-14T12:36:02+02:00Bubalgum186321Может я конечно зря так заморочился, если есть более простой способ с удовольствием выслушаю.<br/>А задача следующая;<br/>Открывается страница есть поле типа список, который заполняется на основании колонок БД. Затем в зависимости от того что выбрал пользователь запрашивается следующая инфа.<br/>Например таблица с колонками имя и статус. т.е. первое поле будет со списком имя и статус. если выбрать имя, то пойдет запрос к БД и выгрузятся в следующее поле и сформируется список из имен, если юзер выберет статус, то запрос к Бд будет уже другой и выгрузиться поле со списком статусов.
Веб-технологии :: Django :: странности с переменными при передаче из шаблона во view
2017-11-14T12:30:24+02:00FishHook186320<strong>Bubalgum</strong><br/>Вы думаете, что этим вы что-то получаете из БД? Это же просто список полей модели. И вообще, так делать нельзя, вам же специально подчеркнули - это служебный атрибут, не надо его использовать в прикладном коде.<br/>У вас вообще что происходит? Вы пытаетесь с помощью jQuery отправить клиенту текст выбранного опшена (не value!!!), который должен представлять собой имя столбца таблицы БД? ЗАЧЕМ?
Веб-технологии :: Django :: странности с переменными при передаче из шаблона во view
2017-11-14T12:18:40+02:00Bubalgum186319Самое начало view<br/><div class="code"><pre> <span class="n">latest_question_list</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">_meta</span><span class="o">.</span><span class="n">fields</span>
</pre></div>потом через context передается рендеру, а в шаблоне уже раскрывается эта переменная.<br/>Если я не так выразился извиняюсь.
Веб-технологии :: Django :: странности с переменными при передаче из шаблона во view
2017-11-14T12:00:49+02:00FishHook186318<blockquote><em>Bubalgum</em><br/>Не срабатывает только из тех полей которые генерятся на основании данных из Бд.</blockquote>В том коде, который вы показали, нет обращений к БД
Веб-технологии :: Django :: странности с переменными при передаче из шаблона во view
2017-11-14T11:41:32+02:00Bubalgum186317Протестировал, создал поле и текст выдергивал отправлял и цифры, код срабатывает.<br/>Не срабатывает только из тех полей которые генерятся на основании данных из Бд. Бд sqllite. Кодировка везде utf8 и в Бд и в шаблоне.
Веб-технологии :: Django :: странности с переменными при передаче из шаблона во view
2017-11-14T11:37:13+02:00Bubalgum186316view.py<br/><div class="code"><pre> <span class="k">def</span> <span class="nf">index_a</span><span class="p">(</span><span class="n">request</span><span class="p">):</span>
<span class="n">models</span> <span class="o">=</span> <span class="n">ClientPerson</span>
<span class="n">latest_question_list</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">_meta</span><span class="o">.</span><span class="n">fields</span>
<span class="n">my_var</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">GET</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'persona_status'</span><span class="p">,</span> <span class="bp">False</span><span class="p">)</span>
<span class="n">my_var4</span> <span class="o">=</span> <span class="s2">"person_name"</span>
<span class="k">if</span> <span class="n">my_var4</span> <span class="o">==</span> <span class="n">my_var</span><span class="p">:</span>
<span class="n">my_var5</span> <span class="o">=</span><span class="s2">"yes"</span>
<span class="n">context</span> <span class="o">=</span><span class="p">{</span><span class="s1">'latest_question_list'</span><span class="p">:</span> <span class="n">latest_question_list</span><span class="p">}</span>
<span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'blogic/index_a.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
</pre></div>index.html<br/><br/><div class="code"><pre> <span class="cp">{%</span> <span class="k">load</span> <span class="nv">staticfiles</span> <span class="cp">%}</span>
<span class="cp"><!DOCTYPE html></span>
<span class="p"><</span><span class="nt">html</span> <span class="na">lang</span><span class="o">=</span><span class="s">"en"</span> <span class="na">xmlns</span><span class="o">=</span><span class="s">"http://www.w3.org/1999/xhtml"</span><span class="p">></span>
<span class="p"><</span><span class="nt">head</span><span class="p">></span>
<span class="p"><</span><span class="nt">meta</span> <span class="na">charset</span><span class="o">=</span><span class="s">"utf-8"</span> <span class="p">/></span>
<span class="p"><</span><span class="nt">title</span><span class="p">></</span><span class="nt">title</span><span class="p">></span>
<span class="p"><</span><span class="nt">script</span> <span class="na">type</span><span class="o">=</span><span class="s">"text/javascript"</span> <span class="na">src</span><span class="o">=</span><span class="s">"</span><span class="cp">{%</span> <span class="k">static</span> <span class="s1">'blogic/js/jquery-3.2.1.min.js'</span> <span class="cp">%}</span><span class="s">"</span><span class="p">></</span><span class="nt">script</span><span class="p">></span>
<span class="p"><</span><span class="nt">script</span> <span class="na">type</span><span class="o">=</span><span class="s">"text/javascript"</span><span class="p">></span>
<span class="nx">$</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">$</span><span class="p">(</span><span class="s2">"#test"</span><span class="p">).</span><span class="nx">click</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">q</span> <span class="o">=</span> <span class="nx">$</span><span class="p">(</span><span class="s2">"#name_column option:selected"</span><span class="p">).</span><span class="nx">text</span><span class="p">();</span>
<span class="nx">q2</span> <span class="o">=</span> <span class="p">{</span> <span class="nx">persona_status</span><span class="o">:</span> <span class="nx">q</span> <span class="p">};</span>
<span class="nx">$</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="s2">"index_a/"</span><span class="p">,</span> <span class="nx">q2</span><span class="p">,</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">data</span><span class="p">)</span> <span class="p">{</span>
<span class="nx">$</span><span class="p">(</span><span class="s2">"#test3"</span><span class="p">).</span><span class="nx">append</span><span class="p">(</span><span class="s1">' <select name="test"></span><span class="cp">{%</span> <span class="k">for</span> <span class="nv">product</span> <span class="k">in</span> <span class="nv">my_var2</span> <span class="cp">%}</span><span class="s1"><option ></span><span class="cp">{{</span> <span class="nv">product</span> <span class="cp">}}</span><span class="s1"></option></span><span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span><span class="s1"></select>'</span><span class="p">);</span>
<span class="p">});</span>
<span class="p">});</span>
<span class="p">});</span>
<span class="p"></</span><span class="nt">script</span><span class="p">></span>
<span class="p"><</span><span class="nt">body</span><span class="p">></span>
<span class="p"><</span><span class="nt">p</span><span class="p">><</span><span class="nt">a</span> <span class="na">id</span><span class="o">=</span><span class="s">"test"</span><span class="p">></span>Hello<span class="p"></</span><span class="nt">a</span><span class="p">></</span><span class="nt">p</span><span class="p">></span>
<span class="p"><</span><span class="nt">p</span><span class="p">></span>
<span class="p"><</span><span class="nt">select</span> <span class="na">id</span><span class="o">=</span><span class="s">"name_column"</span> <span class="na">name</span><span class="o">=</span><span class="s">"test"</span><span class="p">></span>
<span class="cp">{%</span> <span class="k">for</span> <span class="nv">product</span> <span class="k">in</span> <span class="nv">latest_question_list</span> <span class="cp">%}</span>
<span class="p"><</span><span class="nt">option</span> <span class="p">></span><span class="cp">{{</span> <span class="nv">product.column</span> <span class="cp">}}</span> <span class="p"></</span><span class="nt">option</span><span class="p">></span>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
<span class="p"></</span><span class="nt">select</span><span class="p">></span>
<span class="p"></</span><span class="nt">p</span><span class="p">></span>
<span class="p"><</span><span class="nt">select</span> <span class="na">name</span><span class="o">=</span><span class="s">"test2"</span><span class="p">></span>
<span class="p"><</span><span class="nt">option</span> <span class="p">></</span><span class="nt">option</span><span class="p">></span>
<span class="cp">{%</span> <span class="k">for</span> <span class="nv">product</span> <span class="k">in</span> <span class="nv">my_var2</span> <span class="cp">%}</span>
<span class="p"><</span><span class="nt">option</span> <span class="p">></span><span class="cp">{{</span> <span class="nv">product</span> <span class="cp">}}</span> <span class="p"></</span><span class="nt">option</span><span class="p">></span>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
<span class="p"></</span><span class="nt">select</span><span class="p">></span>
<span class="p"></</span><span class="nt">body</span><span class="p">></span>
<span class="p"></</span><span class="nt">html</span><span class="p">></span>
</pre></div>
Веб-технологии :: Django :: странности с переменными при передаче из шаблона во view
2017-11-14T11:07:48+02:00FishHook186315код покажите
Веб-технологии :: Django :: странности с переменными при передаче из шаблона во view
2017-11-14T10:16:21+02:00Bubalgum186312Доброго времени суток! <br/>Подскажите что не так.<br/>Передаю из шаблона переменную методом jQuery.get(). Во view принимаю, в дебагере вижу, что пеедалось то что нужно, НО при сравнении условие не выполняется.<br/>Например передаю my_var= “status”, проверяю во вьюхе условие if my_var == “status” результат false.<br/>В дебагере смотрю переменные str, строковые, почему не равны?