Не вижу содержимое массива в 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 })
→ Ссылка