【发布时间】:2021-05-09 09:33:07
【问题描述】:
在我的 Django 项目中,我通过 get_urls() 方法为应用创建了一个自定义管理页面。我想添加一个指向应用程序主模型索引视图的链接,该视图将用户带到此自定义页面 - 但是,我在正确创建此链接元素时遇到了一些问题,而且我似乎无法拼凑正确的方法 - 我只剩下一个 Reverse for 'export' not found. 'export' is not a valid view function or pattern name. 错误。
我已经为应用设置了管理员,如下所示:
# my_project/observations/admin.py
from django.template.response import TemplateResponse
from django.urls import path
class ObservationAdmin(SimpleHistoryAdmin, SoftDeletionModelAdmin):
change_list_template = 'export_link.html'
def get_urls(self):
urls = super().get_urls()
custom_urls = [
path('export/', self.admin_site.admin_view(self.export_view), name='export')
]
return custom_urls + urls
def export_view(self, request):
context = dict(
self.admin_site.each_context(request),
)
return TemplateResponse(request, 'export.html', context)
以及引用的两个模板:
# my_project/observations/templates/export.html
{% extends "admin/base_site.html" %}
{% block content %}
<div>
Some custom content
</div>
{% endblock %}
# my_project/observations/templates/export_link.html
{% extends 'admin/change_list.html' %}
{% block object-tools-items %}
<li>
<a href="{% url 'export' %}" class="btn btn-high btn-success">Export</a>
</li>
{{ block.super }}
{% endblock %}
直接导航到http://localhost:8000/admin/observations/observation/export/ 效果很好,我看到的自定义内容页面完全符合我的要求......所以我遇到的问题是链接模板 - 当我导航到时出现Reverse... 错误模型索引页面。
也许我传递给 url 的参数不正确,或者我需要在其他地方注册该 URL - 但我不太清楚。我能够找到的其他此类链接元素示例不引用通过管理类的 get_urls() 方法创建的 URL - 因此,我们将不胜感激任何有关这方面的指导。
非常感谢,如果我能提供任何其他信息来帮助解决这个问题,请告诉我。
【问题讨论】:
标签: django