Я пытаюсь выложить submit_line.html
из DetailView
шаблона администратора в Django, но я получаю эту ошибку:
InvalidTemplateLibrary at /
Module data_operations.templatetags.data_operations_tags does not have a variable named 'register'
My settings.py
содержит мое приложениеимя:
INSTALLED_APPS = [
...
'data_operations',
...
]
и данные шаблона:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
# os.path.join(PROJ_DIR, 'templates')
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'data_operations.apptemplates.load_setting'
],
'libraries':{
'data_operations_tags': 'data_operations.templatetags.data_operations_tags',
}
},
},
]
Вот data_operations/templatetags/data_operations_tags.py
:
from django.contrib.admin.templatetags.admin_modify import submit_row
from django.template.loader import get_template
from django import template
t = get_template('admin/data_operations/submit_line.html')
register = template.Library()
register.inclusion_tag(t, takes_context=True)(submit_row)
Я убедился, что пустое __init__.py
вКаталог templatetags
.
Наконец, у меня есть два шаблона.data_operations/templates/admin/data_operations/change_form.html
:
{% extends "admin/change_form.html" %}
{% load data_operations_tags %}
{% block submit_buttons_bottom %}{% submit_row %}{% endblock %}
и data_operations/templates/admin/data_operations/submit_line.html
(что точно так же, как по умолчанию, за исключением того, что я добавил в код пользовательскую кнопку «Отмена»):
{% load i18n admin_urls %}
<div class="submit-row">
{% if show_save %}<input type="submit" value="{% trans 'Save' %}" class="default" name="_save" />{% endif %}
{% if show_delete_link %}
{% url opts|admin_urlname:'delete' original.pk|admin_urlquote as delete_url %}
<p class="deletelink-box"><a href="{% add_preserved_filters delete_url %}" class="deletelink">{% trans "Delete" %}</a></p>
{% endif %}
<input type=button value="Cancel" onClick="javascript:history.go(-1);">
{% if show_save_as_new %}<input type="submit" value="{% trans 'Save as new' %}" name="_saveasnew" />{% endif %}
{% if show_save_and_add_another %}<input type="submit" value="{% trans 'Save and add another' %}" name="_addanother" />{% endif %}
{% if show_save_and_continue %}<input type="submit" value="{% trans 'Save and continue editing' %}" name="_continue" />{% endif %}
</div>
Я не понимаю, почему ошибка говорит, что data_operations_tags
не имеет переменной с именем register
.Эта переменная явно присутствует в коде.Пожалуйста, помогите!