Python 如何在Django REST框架可浏览API中自定义面包屑

Python 如何在Django REST框架可浏览API中自定义面包屑,python,django,django-rest-framework,Python,Django,Django Rest Framework,目前,可浏览的API似乎从我的视图的类名派生面包屑。但是,我正在为我的API使用嵌套资源,因此我可以获得如下面包屑: 根/用户列表/用户详细信息/用户邀请列表/用户邀请详细信息 然而,“用户邀请”视图再次显示用户这一事实是相当多余的。我宁愿他们的面包屑只是“邀请列表”和“邀请细节” 现在最明显的解决方案当然是重命名视图类,但这不是我的选择,因为我还有类ChatInviteList和ChatInviteDetail,它们都有相同的问题。所以我不能把他们两个都命名为InviteDetail和Invi

目前,可浏览的API似乎从我的视图的类名派生面包屑。但是,我正在为我的API使用嵌套资源,因此我可以获得如下面包屑:

根/用户列表/用户详细信息/用户邀请列表/用户邀请详细信息

然而,“用户邀请”视图再次显示用户这一事实是相当多余的。我宁愿他们的面包屑只是“邀请列表”和“邀请细节”

现在最明显的解决方案当然是重命名视图类,但这不是我的选择,因为我还有类ChatInviteList和ChatInviteDetail,它们都有相同的问题。所以我不能把他们两个都命名为InviteDetail和InviteList


有没有办法用另一种方式定制这些面包屑?例如,在视图类中设置某个变量或其他内容。我尝试搜索文档,但找不到任何内容。

编写一个名为
'rest\u framework/api.html'
()的模板,该模板扩展了
'rest\u framework/base.html'
,其中覆盖了
面包屑块。有关指导,请参见:

{%block breadcrumbs%}
    {对于面包屑库名称,面包屑库url位于面包屑库列表%} {%if-forloop.last%}
  • {%else%}
  • {%endif%} {%endfor%}
{%endblock%}
是的,我确实找到了,但在这种情况下,我不想覆盖整个面包屑块。为了实现我的目标,最好重写breadcrumblist上下文变量,但我找不到该变量的来源。请编写一个子类,并重写
get_breadcrumbs
;-)通过BrowsableapInderer,我可以更好地跟踪名称的来源,并最终发现我可以通过让我的视图覆盖
get\u view\u name
来解决我的问题。谢谢你给我指明了正确的方向!此评论节省了通过DRF搜索的时间,谢谢!
{% block breadcrumbs %}
  <ul class="breadcrumb">
    {% for breadcrumb_name, breadcrumb_url in breadcrumblist %}
      {% if forloop.last %}
        <li class="active"><a href="{{ breadcrumb_url }}">{{ breadcrumb_name }}</a></li>
      {% else %}
        <li><a href="{{ breadcrumb_url }}">{{ breadcrumb_name }}</a></li>
      {% endif %}
    {% endfor %}
  </ul>
{% endblock %}