К сожалению, похоже, вы неправильно поняли, как использовать шаблонные фильтры Django. Фильтр - это то, что вы используете для изменения или взаимодействия с объектом.
Если вы посмотрите на существующие встроенные фильтры, вы можете найти несколько примеров .
1007 * Е.Г. *
{{value|capfirst}} # Converts a string stored in value, to be capitalized.
В вашем конкретном случае вы, вероятно, просто хотите добавить список элементов базы данных в контекст вашего шаблона. Есть несколько способов сделать это в зависимости от того, используете ли вы функциональные представления или представления на основе классов.
Когда вы, наконец, определили переменную в своем контексте, вы можете просто сделать следующее (где object_list
- это пример имени переменной контекста).
{% for obj in object_list %}
Представление списка на основе классов
from django.views.generic import ListView
class EmployeeListView(ListView):
model = Employee
template = "/mytemplate.html"
В этом случае ListView автоматически добавит всех сотрудников в переменную шаблона с именем object_list
.
Переопределить get_context_data
Если вы не используете ListView
или не хотите полагаться на унаследованную автоматизацию создания списка объектов, вы можете переопределить метод get_context_data()
в своем общем представлении.
from django.views.generic import TemplateView
class EmployeeView(TemplateView):
template = "/mytemplate.html"
def get_context_data(self):
context = super().get_context_data()
context["employee_list"] = self.get_queryset()
return context
def get_queryset(self):
return Profile.objects.all()
Использование функциональных представлений
В случае функциональных представлений вы просто передадите контекст в качестве kwarg вашей функции рендеринга.
def employee_view(request):
return render(request, '/mytemplate.html', {'employee_list': get_queryset()})
def get_queryset():
return Profile.objects.all()