91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 如何使用django-suit模板添加自定義的菜單、頁面及設置訪問權限

如何使用django-suit模板添加自定義的菜單、頁面及設置訪問權限

發布時間:2021-07-26 09:22:53 來源:億速云 閱讀:228 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“如何使用django-suit模板添加自定義的菜單、頁面及設置訪問權限”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何使用django-suit模板添加自定義的菜單、頁面及設置訪問權限”這篇文章吧。

 方法如下:

1、先在settings.py里面的SUIT_CONFIG中添加配置,我們平時添加的配置都是app類型的,我們需要自定義頁面的話,就不能用app了,需要用url,這里面我們使用如下:

# django-suit config
SUIT_CONFIG = {
 'ADMIN_NAME': 'X·X',
 'HEADER_DATE_FORMAT': '',
 'HEADER_TIME_FORMAT': 'H:i',
 'SHOW_REQUIRED_ASTERISK': True,
 'CONFIRM_UNSAVED_CHANGES': True,
 'LIST_PER_PAGE': 20,
 'MENU_OPEN_FIRST_CHILD': True,
 'MENU': (
  # sites是默認原先的app和models
  # 'sites',
  '-',
  {'app': 'auth', 'label': u'權限管理', 'icon': 'icon-lock'},
  '-',
  {'app': 'duser', 'label': u'平臺用戶', 'icon': 'icon-user'},
  '-',
  {'app': 'dtheme', 'label': u'主題管理', 'icon': 'icon-tags'},
  '-',
  {'app': 'dpost', 'label': u'文章管理', 'icon': 'icon-edit'},
  '-',
  # 如果使用http這種絕對路徑的話,菜單不會展開,且不會標記為active狀態
  {'url': '/admin/theme/mysql', 'label': u'第三數據', 'icon': 'icon-lock'},
  '-',
  {'label': u'統計數據', 'icon': 'icon-tags', 'models': (
   {'url': '/admin/theme/data', 'label': u'第一數據'},
   {'url': '/admin/theme/show', 'label': u'第二數據'}
  )}
 )
}

2、然后就是在urls.py里面添加路由,這個路由一定要添加在admin.site.urls的前面,因為不然的話,它會先去admin.site.urls里面去匹配,造成混亂或報錯。

from dtheme import views

urlpatterns = [
 # 第一個就是我們自己新增的url路徑
 url(r'^admin/theme/data', views.data),
 url(r'^admin/', admin.site.urls),
 url(r'^api/user/', include('duser.urls')),
 url(r'^api/post/', include('dpost.urls')),
 url(r'^api/theme/', include('dtheme.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

3、然后,就是寫views了,我們假如dtheme模塊的views里面寫:

def data(request):
 return render(request, "data.html")

4、請注意,之所以我們上面可以直接用data.html,是因為我們在dtheme模塊下面創建了一個templates文件夾,然后把data.html放在里面了,它會掃描這個文件夾找模板。那么這個模板寫成什么樣呢?我們就隨意寫了一個東西。這里面需要注意的是,我們需要繼承base_site.html,不然那些header和footer,還有左邊的菜單什么的都沒有了,相當于誰也不繼承。內容就寫在content里面即可。

{% extends "admin/base_site.html" %}

{% block content %}
hello, new page.
{% endblock %}

5、OVER。

6、回來,還沒完。這個時候如果我們從后臺注銷,然后直接在瀏覽器中輸入http://127.0.0.1:8000/admin/theme/data的話,發現還是可以直接訪問到這個頁面,輸入管理后臺的其他頁面它就會要求你驗證。所以說我們自定義的這個頁面還是十分危險的,其他人知道網址后就可以直接訪問它了,我們的想法其實也很簡單啊,我們也不想搞特殊,在安全這方面,只要求和其他后臺的頁面一樣就行了:即用戶在訪問這些后臺頁面的時候要做一個用戶驗證,如果用戶已經登錄了,就可以訪問,沒登錄沒通過驗證的話,就不能訪問,直接跳轉到登錄頁面。這個需要我們再view里面做設置。

from django.contrib.admin.views.decorators import staff_member_required

def data(request):
 return render(request, "data.html")

data = staff_member_required(data)

看到上面的變化了沒有?就是我們引入了一個staff_member_required模塊,這個模塊就是用來驗證是否是內部人員(也就是是否登錄)用的。當然我們要把我們的view函數放在它里面。這樣就OK了。

7、這里面還有一個如何把自定義頁面加入到auth里面的坑,待研究完再回來補充。

以上是“如何使用django-suit模板添加自定義的菜單、頁面及設置訪問權限”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

刚察县| 南充市| 内黄县| 门头沟区| 公安县| 湖南省| 松溪县| 玉环县| 运城市| 玛沁县| 宜兴市| 武威市| 延津县| 大邑县| 玛多县| 河东区| 灌云县| 谢通门县| 石家庄市| 高密市| 绥中县| 七台河市| 秭归县| 永寿县| 昂仁县| 台东市| 大姚县| 天等县| 吴川市| 新沂市| 廊坊市| 若尔盖县| 舞阳县| 蚌埠市| 湟源县| 清丰县| 庆安县| 邵东县| 精河县| 响水县| 郧西县|