Пустой вывод Django
Учусь работать с отношениями в Django. Добавил данные в БД, но при запросе ничего не выводит
Template:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<ul class="list-group">
{% for i in employee_list.positions.all %}
{{ i.fullname }}
{% endfor %}
</ul>
</body>
</html>
Модель:
from django.db import models
# Create your models here.
class Position(models.Model):
title = models.CharField(max_length=60)
class Employee(models.Model):
fullname = models.CharField(max_length=60)
position = models.ManyToManyField(Position, related_name='positions')
wage_rate = models.SmallIntegerField(max_length=30)
start_date = models.DateTimeField(auto_now=True)
chief = models.ManyToManyField('self', related_name='children', null=True, blank=True)
def __str__(self):
return self.fullname
class Meta:
verbose_name = 'Работник'
verbose_name_plural = 'Работники'
views
from django.shortcuts import render
# Create your views here.
from django.views.generic import DetailView, ListView
from .models import Employee, Position
class EmployeeView(ListView):
model = Employee
class PositionView(ListView):
model = Position
Как это решить и почему так происходит?
Ответы (2 шт):
Автор решения: Alexander Chernykh
→ Ссылка
Моя ошибка заключалась в том, что я делал запрос сразу у нескольких пользователей, а нужно было к одному (надеюсь понятно объяснил) Так же прошу прощения, что не верно выразил то, что мне нужно
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<ul class="list-group">
{% for i in employee_list %}
{% for pl in i.positions.all %}
{{ pl }}
{% endfor %}
{% endfor %}
</ul>
</body>
</html>
Автор решения: Anton Balmakov
→ Ссылка
views:
from django.shortcuts import render
# Create your views here.
from django.views.generic import DetailView, ListView
from .models import Employee, Position
def employee_view(request):
all = Employee.objects.all()
context = { "all": all }
return render(request, 'path_to_template/template' , context)
template :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<ul class="list-group">
{% for i in all %}
{{ i.fullname }}
{{ i.position}}
{% endfor %}
</ul>
</body>
</html>
Должно сработать, но я не проверял