Не вижу содержимое массива в django
Содержимое проекта:
Содержимое файлов:
\blog\views.py:
from django.shortcuts import render
from django.db import models
from .models import Branchs
def branch_list(request):
return render(request, 'blog/branch_list.html', {})
\blog\models.py
from django.conf import settings
from django.db import models
from django.utils import timezone
from io import BytesIO
import subprocess
class Branchs(models.Model):
result = subprocess.run("gitlab project-branch list --project-id 3", stdout=subprocess.PIPE, encoding='utf-8').stdout
br_list = result.replace('\n\n','\n').replace('\n\n','\n').replace('name: ','').replace(', ','\n')
split_list = br_list.split('\n')
parsed_branches = split_list[:-1]
def __str__(self):
return self.parsed_branches
\blog\branch_list.py
from django.urls import path
from . import views
from . import models
urlpatterns = [
path('', views.branch_list, name='branch_list'),
]
\blog\templates\blog\branch_list.html
<html>
<head>
<meta charset="utf-8">
<title>Code loading to GitLab</title>
</head>
<body>
<p>branch</p>
<div class="branch">
<select>
{% for branchs in parsed_branches %}
<option>{{ branchs }}</option>
{% endfor %}
</select>
</div>
</body>
</html>
\blog\urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.branch_list, name='branch_list'),
]
В итоге списка бранчей на странице не вижу:
Подскажите как полечить
Ответы (2 шт):
Автор решения: user355827
→ Ссылка
Ну так ты же во вьюшке в def branch_list(request) ничего не передаешь из бд.
def branch_list(request):
branches = Branchs.objects.all()
return render(request, 'blog/branch_list.html', {'branches':branches})
и в шаблоне
<select>
{% for a in branches %}
<option>{{ a.parsed_branches }}</option>
{% endfor %}
</select>
Автор решения: Игорь
→ Ссылка
Вы используете модели не по назначению. Модели в django предназначены для работой с БД. И так же как сказано в предыдущем ответе вам нужно передать ваши данные в шаблон. Вам нужно сделать следующее:
\blog\views.py
import subprocess
from django.shortcuts import render
def branch_list(request):
result = subprocess.run("gitlab project-branch list --project-id 3",
stdout=subprocess.PIPE, encoding='utf-8').stdout
br_list = result.replace('\n\n','\n').replace('\n\n','\n').replace('name:','').replace(', ','\n')
split_list = br_list.split('\n')
parsed_branches = split_list[:-1]
return render(request, 'blog/branch_list.html', {'parsed_branches': parsed_branches })

