Django. Не передается результат одной из функций из вьюхи в шаблон
Дано:
views.py
в котором содержатся 2 функции, парсящие списки. Одна - список бранчей в проекте Gitlab, вторая - тянет список методов:
from django.shortcuts import render
from django.conf import settings
import cx_Oracle
import subprocess
def method_list(request):
settings.configure()
con = cx_Oracle.connect('USER', 'PaSsWoRd', 'work.rus')
cursor = con.cursor()
sql = 'select * from (select distinct class_id from methods order by 1) where rownum <20'
cursor.execute(sql)
result = cursor.fetchall()
parsed_methods_string = str(result).replace('(\'', '').replace('[', '').replace(', ', '').replace(']', '').replace('\',)', '\n')
parsed_methods = parsed_methods_string.split('\n')[:-1]
print(parsed_methods)
return render(request, 'blog/branch_list.html', {'parsed_methods': parsed_methods})
def branch_list(request):
result = subprocess.run("gitlab project-branch list --project-id 3", stdout=subprocess.PIPE, encoding='utf-8', shell=True).stdout
br_list = result.replace('\n\n', '\n').replace('\n\n', '\n').replace('name: ', '').replace(', ', '\n')
parsed_branches = br_list.split('\n')[:-1]
print(parsed_branches)
return render(request, 'blog/branch_list.html', {'parsed_branches': parsed_branches})
urls.py
from django.urls import path
from . import views
from . import models
urlpatterns = [
path('', views.branch_list, name='branch_list'),
path('', views.method_list, name='method_list')
]
И шаблон
branch_list.html
<!DOCTYPE html>
<html lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Загрузка</title>
</head>
<body>
<p>Выберите метод для загрузки</p>
<p>{{ parsed_methods }}</p>
<div class="method">
<select>
{% for a in parsed_methods %}
<option>{{ a }}</option>
{% endfor %}
</select>
</div>
<p>Выберите бранч для загрузки</p>
<p>{{ parsed_branches }}</p>
<div class="branch">
<select>
{% for a in parsed_branches %}
<option>{{ a }}</option>
{% endfor %}
</select>
</div>
</body>
</html>
Т.е., распарсены оба списка, но в шаблон не передается лист из функции method_list
Собственно, не могу понять ЧЯДНТ?
Ответы (1 шт):
Автор решения: user355827
→ Ссылка
в return 1 функции
return render(request, 'blog/branch_list.html', {'parsed_branches': parsed_methods})
замените на
return render(request, 'blog/branch_list.html', {'parsed_methods': parsed_methods})
это точно должно помочь
def method_list(request):
settings.configure()
con = cx_Oracle.connect('USER', 'PaSsWoRd', 'work.rus')
cursor = con.cursor()
sql = 'select * from (select distinct class_id from methods order by 1) where rownum <20'
cursor.execute(sql)
result = cursor.fetchall()
parsed_methods_string = str(result).replace('(\'', '').replace('[', '').replace(', ', '').replace(']', '').replace('\',)', '\n')
parsed_methods = parsed_methods_string.split('\n')[:-1]
print(parsed_methods)
result_brunch = subprocess.run("gitlab project-branch list --project-id 3", stdout=subprocess.PIPE, encoding='utf-8', shell=True).stdout
br_list = result_brunch.replace('\n\n', '\n').replace('\n\n', '\n').replace('name: ', '').replace(', ', '\n')
parsed_branches = br_list.split('\n')[:-1]
print(parsed_branches)
return render(request, 'blog/branch_list.html', {'parsed_methods': parsed_methods, 'parsed_branches': parsed_branches})