试用django-jet

“具备改进功能的Django管理界面的现代响应模板”(代理翻译)
在Django Packages管理网站界面部分很受欢迎,因为在功能比较表上也被勾选了很多,所以我决定试一试。
按照文档进行设置。

使用过的环境

Windows 10
Python 3.5.4
Django 1.11.8
django-jet-1.0.7

安装

> pip install django-jet

设定

设置.py

在 INSTALLED_APPS 中添加 jet。

INSTALLED_APPS = [
    # TODO: for jet
    'jet',
    'django.contrib.admin',
    ...
]

在模板中添加上下文处理器。默认情况下会包含,如果没有,则需额外添加。

TEMPLATES = [
    {
        ...
        'OPTIONS': {
            'context_processors': [
                ...
                'django.template.context_processors.request',
                ...
            ],
        },
    },
]

urls.py 的本地化中文翻译:网址.py

新增URL模式。该URL将用于相关搜索和自动补全。管理网站的URL不会改变。

urlpatterns = [
    # TODO: for jet
    url(r'^jet/', include('jet.urls', 'jet')),  # Django JET URLS
    url(r'^admin/', admin.site.urls),
]

建立jet的DB表格

在Django项目的目录中切换到jet模型,并进行迁移。

> cd project_directory
> python manage.py migrate jet

执行collectstatic命令

由于本次仅涉及本地环境,因此此项不必要。

启动管理网站

默认的管理网站(主页)

为了进行比较,应用django-jet之前的默认管理网站。

通常_admin_.png

django-jet 的后台管理界面 (Home)经过适配之后。

好的。与我最近尝试的django-grappelli相比,这个看起来更现代化。看起来很有用。

jet_admin.png

设定仪表盘

settings.py 文件

按照以下顺序,在INSTALLED_APPS中添加jet.dashboard。

INSTALLED_APPS = [
    # TODO: for jet
    'jet.dashboard',
    'jet',
    'django.contrib.admin',

创建Jet的数据库表

在Django项目的目录中进行dashboard模型的迁移。

> cd project_directory
> python manage.py migrate dashboard

执行collectstatic命令

这次只是在本地环境,所以这个不需要。

启动管理网站(应用Dashboard后)。

客制化未完成的控制面板。

dashboard_admin.png
undefined
undefined

这是一个“…现代应答模板”的开头。

因为感觉好,所以稍微调整一下试试看。

仪表板定制文档。

谷歌分析小组件

我发现了一个名为Google Analytics Widgets的东西,所以我想试着调整一下。

安装google-api-python-client库

pip install google-api-python-client

设置.py

设置谷歌API的认证信息文件(client_secrets.json的获取方法)的路径。

# TODO: for jet google_analytics
JET_MODULE_GOOGLE_ANALYTICS_CLIENT_SECRETS_FILE = os.path.join(BASE_DIR, 'client_secrets.json')

urls.py的翻译:网址.py

在urls.py文件中添加以下行。

# TODO: for jet google_analytics
from jet.dashboard.dashboard_modules import google_analytics_views

仪表盘.py

在项目的根目录下创建一个名为 dashboard.py 的文件,内容如下。

from django.utils.translation import ugettext_lazy as _
from jet.dashboard.dashboard import Dashboard, AppIndexDashboard
from jet.dashboard.dashboard_modules import google_analytics

class CustomIndexDashboard(Dashboard):
    columns = 3

    def init_with_context(self, context):
        self.available_children.append(
            google_analytics.GoogleAnalyticsVisitorsTotals)
        self.available_children.append(
            google_analytics.GoogleAnalyticsVisitorsChart)
        self.available_children.append(
            google_analytics.GoogleAnalyticsPeriodVisitors)

再次进入settings.py

在 settings.py 中添加使用上述 dashboard.py 类的功能。

# TODO: for jet google_analytics
JET_INDEX_DASHBOARD = 'dashboard.CustomIndexDashboard'

在这里启动管理网站并试试Google Analytics小部件。

Uncaught TypeError: django.jQuery is not a function

JavaScript 出错了。哎呀。在 https://github.com/geex-arts/django-jet/issues/161 上有一个解决方法。因为对话很长,所以只摘录了解决方法部分如下。

将文件jquery.init.js添加到文件夹jet/static/jet/js/build/。

/*global django:true, jQuery:false*/
/* Puts the included jQuery into our own namespace using noConflict and passing
 * it 'true'. This ensures that the included jQuery doesn't pollute the global
 * namespace (i.e. this preserves pre-existing values for both window.$ and
 * window.jQuery).
 */

var django = django || {};
django.jQuery = jQuery.noConflict(true);

在文件中的下一个位置:jet/templates/admin/base.html,在头部添加两行。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="{% static "jet/js/build/jquery.init.js" as url %}{{ url|jet_append_version }}"></script>

这应该能解决你的问题。祝你成功!

按照上述进行修正。

启动管理网站(在Google Analytics小部件应用后)

在wigets > available中选择你在dashboard.py中添加的模块,然后点击“+”进行选择。

g_analytics_1.png

请点击 “请附加Google账号” 部分。

g_analytics_2.png

点击“授予访问权限”。

g_analytics_3.png

由于进入谷歌的身份验证界面,请点击[允许]。

g_analytics_4.png

随意选择(可能是GoogleAPI的参数)。

g_analytics_5.png

有一个图表出现了。

g_analytics_6.png

当查阅”仪表盘自定义文档”时,可以将自制的小组件添加为”自定义仪表盘模块”。

许可证

虽然我关注JavaScript的错误,但它看起来可用,所以我需要AGPLv3和商业许可证。

GNU通用公共许可证第三版

无论什么时候阅读许可证文件我都不明白…
但我大致理解了「如果使用AGPLv3的开源软件,并将其作为开源软件公开,可以免费使用」。

商业许可证

以下是如下的收费体系:
每个项目 65 美元
无限制 199 美元

由于有支持,您可以照顾到上述的js错误问题吗?
看起来它有超过价格的价值。

bannerAds