如何覆盖或替换默认的django管理站点模板?

时间:2015-04-09 10:53:46

标签: django django-templates

FIRST:

我使用django管理站点作为我的网站管理系统,但有些功能对我来说不合适,所以我决定自己制作,根据django docs,我学到的是我可以覆盖Templates每个应用程序或模型虽然我可以扩展AdminSite以构建一个全新的。但是,我在玩它们时遇到一些问题,我想要做的是:

1,文章/ admin.py (我项目的一个应用)

from django.contrib import admin
from django.contrib.admin import AdminSite
from .models import Article,ArticleImage,Category

class MyAdminSite(AdminSite):
    site_header = "Moonmoonbird administration"

admin_site = MyAdminSite(name="myadmin")
admin_site.register(Article)

2,settings.py

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.messages', 
    'django.contrib.sessions', 
    'django.contrib.staticfiles',
    'rest_framework',
    'rest_framework_swagger',
    #'django.contrib.admin',
    'django.contrib.admin.apps.SimpleAdminConfig',(which docs suggest to do)
    'jwtauth',
    'navigation',
    'myadmin',
    'article',
)

第3,urls.py

from django.conf.urls import patterns, include, url
from jwtauth.views import obtain_jwt_token
from django.contrib.auth.admin import admin
from article.admin import admin_site
urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'moonmoonbird.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'admin/',include(admin.site.urls)),
    url(r'myadmin/',include(admin_site.urls)),
    url(r'^auth/',obtain_jwt_token.as_view())
)

当我访问example.com/adminexample.com/myadmin时,它们是相同的,都是django管理站点的默认实现。我无法看到我在哪里做错了。

SECOND:

让我们说一个用例(我现在见面),我的项目的文章应用程序,它有标题,标签和内容属性,我通过这样做安装到管理站点:

文章/ admin.py:

from django.contrib import admin
admin.site.register(Article)
admin.site.register(Category)
admin.site.register(ArticleImage)

现在我可以在管理网站中操作CURD,但我想要的是我可以像SO那样编辑我的文章内容,即使用pagedown编辑器说(实际上我想使用),但我不知道该怎么做。

问题:

1,如何让FIRST工作流程正常工作?

2,如何做以及您建议我采取哪些措施来实施SECOND案例?

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果你真的需要更改整个管理模板,请好好考虑一下。在大多数情况下,您需要进行一些小的更改。 admin.ModelAdmin类中有很多有用的自定义属性。甚至可以使用HTML模板覆盖管理模板的某些部分。

阅读Django tutorial, Part 2示例,了解如何轻松更改管理页面功能并查看。

您能告诉管理页面需要更改的内容吗?