跳转至

高级开发

本文提供了一些在扩展开发过程所需要的功能。这些功能的实现可能需要整合Django核心模块功能或者其他第三方库。

组件

组件编写

django-echarts 内置的UI框架与下列项目是一样的,因此可以在项目中使用其提供模板标签以提高编码效率。

视图逻辑

仅登录用户访问

django提供了 login_required 装饰器用于仅登录用户可访问的功能,但是该装饰器只能装饰视图函数。因此只能单独一个一个添加到对应视图函数之前。

django-decorator-include 是一个可以在装饰include 函数,使得对于同组的多个路由同时添加登录限制。

下面是一个例子:

from django.conf.urls import url, include
from django.contrib.auth.decorators import login_required

from decorator_include import decorator_include

from site_views import site_obj

urlpatterns = [
    path('site_demo/', decorator_include(login_required, site_obj.urls))
]

用户名显示

DwString 提供了一种利用模板字符串显示动态字符串的功能。

例子:在右侧菜单栏显示用户信息,如果登录则显示用户名(request.user.username),未登录显示“匿名用户” 文字。

site_obj.add_right_link(
    LinkItem(text=DwString.login_name(un_login_text='匿名用户'))
)