Browsable API的自定义主题无法正确呈现

时间:2018-10-16 21:28:18

标签: django-rest-framework

我正在尝试覆盖可浏览api的css文件,但主题无法正确呈现。

特别是:

1)导航栏显示不正确。

2)获取按钮偏离其正确位置

3)顶部的导航链接没有箭头或斜线。

我的代码

-proj
--app
--templates
----rest_framework
------api.html
--proj
----settings.py

settings.py

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    #'DIRS': [os.path.join(BASE_DIR, 'templates')],
    'DIRS' : [],
    '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',
        ],
    },
},]

api.html

{% extends "rest_framework/base.html" %}

{% block bootstrap_theme %}
    <link rel="stylesheet" href="https://bootswatch.com/4/cerulean/bootstrap.min.css" type="text/css">
{% endblock %}




{% block branding %}
    <a class="navbar-brand" rel="nofollow" href="#">
        My Title
    </a>
{% endblock %}

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

根据DRF文档(https://www.django-rest-framework.org/topics/browsable-api/

  

可浏览的API是使用Twitter的Bootstrap(v 3.3.5)构建的

他们指向了准备就绪的主题Bootswatch(https://bootswatch.com/)网站,但是现在它托管了Bootstrap 4的主题。它提供了https://bootswatch.com/4/cerulean/bootstrap.min.css之类的链接进行下载。我刚从4变为3:https://bootswatch.com/3/cerulean/bootstrap.min.css,下载的主题接缝可以正常工作。

答案 1 :(得分:0)

我尝试了一下,但是即使链接正确也对我不起作用。实际上,当我们创建Django应用时,有时其模板配置无法正常运行。就像默认情况一样,它看起来在 template 目录中,但有时无法正常工作。

您要做的是确保每个应用程序的模板目录都在项目设置文件中提及,如屏幕截图所示。这个技巧对我有用。 enter image description here