Попытка переопределить шаблон в change_list django admin
Я пытаюсь переопределить temaplate для change_list для определенной модели. Вот мой dir apps и каталог в корне проекта:
Project root
apps/
├── FreedomTools
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── forms.py
│ ├── migrations
│ ├── models.py
│ ├── static
│ ├── templates
│ │ ├── activate_badge.html
│ │ └── identiv_access.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
templates/
├── __init__.py
├── admin
│ └── FreedomTools
│ └── identivaccess
│ └── change_list.html
Я изменил ТЕМПЛАТЫ в settings.py :
'DIRS': [(os.path.join(BASE_DIR, 'templates')), ],
поэтому шаблон выше переопределяет шаблон django admin по умолчанию.
У меня есть функция в views.py, которая возвращает render, переопределенный шаблон, и словарь с некоторой информацией, собранной из других функций:
def identiv_access(request):
identiv_acccess_form = UserIdentivAccess()
user_groups_not_in_freedom_group_list = []
user_groups_in_freedom_group_list = []
submitted = False
if request.method == "POST":
if "search" in request.POST:
**# next is a form made from the model with only 1 field:**
identiv_acccess_form = UserIdentivAccess(request.POST)
if identiv_acccess_form.is_valid():
user_request = identiv_acccess_form.cleaned_data['user']
user_groups = return_user_access_groups(user_request, "Freedom")
for group in return_freedom_groups():
if group in user_groups:
user_groups_in_freedom_group_list.append(group)
else:
user_groups_not_in_freedom_group_list.append(group)
if "save" in request.POST:
identiv_acccess_form = UserIdentivAccess(request.POST)
if identiv_acccess_form.is_valid():
user_request = identiv_acccess_form.cleaned_data['user']
groups_request = request.POST.getlist('checked')
add_remove_user_access_group(user_request, groups_request)
return HttpResponseRedirect('/identiv_access?submitted=True')
else:
if 'submitted' in request.GET:
submitted = True
return render(request, **'templates/admin/FreedomTools/identivaccess/change_list.html'**,
{'identiv_access_form': identiv_acccess_form,
'user_groups_not_in_freedom_group_list': user_groups_not_in_freedom_group_list,
'user_groups_in_freedom_group_list': user_groups_in_freedom_group_list,
'submitted': submitted,
'logo': logo})
тогда мой пользовательский шаблон change_list.html выглядит так:
{% extends "admin/base_site.html" %}
{% block title %}Identiv Access{% endblock %}
{% block content %}
{% load static %}
<br>
<div class="identiv-access-form">
{% if submitted %}
<div class="alert alert-success" role="alert">
Thank you, the groups have been submitted successfully.
</div>
<div class="alert alert-secondary" role="alert">
<a href="{%url 'identiv_access' %}">
<button type="button" class="btn btn-primary btn-sm float-right">
Search another user...
</button>
</a>
</div>
{% else %}
<div class="hstack gap-3">
<form action="" method="POST" name="user_form">
{% csrf_token %}
{{ identiv_access_form.as_p }}
<input class="btn btn-secondary" type="submit" value="search"name="search">
<br>
<br>
{% if user_groups_in_freedom_group_list %}
{% csrf_token %}
{% for group in user_groups_in_freedom_group_list %}
<div class="form-check form-switch">
<ul class="list-group">
<li class="list-group-item">
<input class="form-check-input" type="checkbox" role="switch" value="{{ group }}" name="checked" id="flexSwitchCheckCheckedHidden" checked>
<label class="form-check-label" for="flexSwitchCheckChecked">{{ group }}</label>
</li>
</ul>
</div>
{% endfor %}
{% endif %}
{% if user_groups_not_in_freedom_group_list %}
{% for group in user_groups_not_in_freedom_group_list %}
<div class="form-check form-switch">
<ul class="list-group">
<li class="list-group-item">
<input class="form-check-input" type="checkbox" role="switch" value="{{ group }}" name="checked" id="flexSwitchCheckDefault">
<label class="form-check-label" for="flexSwitchCheckDefault">{{ group }}</label>
</li>
</ul>
</div>
{% endfor %}
<input class="btn btn-secondary" type="submit" value="save" name="save">
{% endif %}
</form>
</div>
</div>
<!-- {% endif %}-->
{% endblock %}
если я перейду на http://localhost:8000/admin/FreedomTools/identivaccess/, то получу следующее: change_list template
Не показывает форму или любую другую информацию из диктанта. только кнопку поиска.
Может кто-нибудь указать мне на то, что я делаю неправильно?
Спасибо
До сих пор удавалось переопределить шаблон django admin для конкретной модели: Я вижу, что все кнопки в change_list.html исчезли, и если я помещу какой-нибудь фиктивный <h1.> что-нибудь </h1.> и я могу это увидеть. Но ни одна информация, возвращаемая из словаря.