【发布时间】:2018-12-25 21:33:24
【问题描述】:
我想自定义 Django REST Framework Browsable API 模板(只需将品牌更改为不同的名称和链接)。
我已阅读有关如何实现此目的的文档,并最初在以下路径中执行了以下操作:hints(project)->hints1(app)->templates->rest_framework->api.html
api.html:
{% extends "rest_framework/base.html" %}
{% block title %} Handy Dev Hints - API {% endblock %}
{% block branding %}
<span>
<a class='navbar-brand' rel="nofollow" href="{% url 'html' %}">
-----HTML View----- <span class="version">1</span>
</a>
</span>
{% endblock %}
我还修改了我的 settings.py 如下,特别是 DIRS 部分:
settings.py:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR, os.path.join(BASE_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',
],
},
},
]
从我看过的教程和我阅读的文档来看,这应该足以实现更改。但是,它没有用。
所以我决定直接在站点包库中更改 base.html。
base.html:
<!DOCTYPE html>
.
.
.
{% block body %}
<body class="{% block bodyclass %}{% endblock %}">
<div class="wrapper">
{% block navbar %}
<div class="navbar navbar-static-top {% block bootstrap_navbar_variant %}navbar-inverse{% endblock %}"
role="navigation" aria-label="{% trans "navbar" %}">
<div class="container">
<span>
{% block branding %}
<a class='navbar-brand' rel="nofollow" href="{% url 'html' %}">
-----HTML View-----
</a>
{% endblock %}
当我在本地服务器上运行此解决方案时,它有效。但是,当我将文件上传到外部服务器时它不起作用(我也将rest_framework 和rest_framework_jwt 站点包上传到外部服务器,但我认为我仍然缺少一些东西)。
关于如何按照文档的建议使更改在外部服务器上运行有什么建议吗?甚至通过 base.html 更改方法? (或任何其他方法)。
非常感谢!
【问题讨论】:
标签: html django django-templates django-rest-framework