django xadmin實現(xiàn)自定義頁面并且權(quán)限控制方式
更新時間:2023年08月25日 17:18:01 作者:pzl_pzl
這篇文章主要介紹了django xadmin實現(xiàn)自定義頁面并且權(quán)限控制方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
寫一些內(nèi)部工具
自定也頁面效果圖
代碼如下
class GlobalSettings(object): # 修改title site_title = 'VIP權(quán)益服務(wù)后臺' # 修改footer site_footer = 'xxxx科技有限公司' # 收起菜單 menu_style = 'accordion' def get_site_menu(self): return [ { 'title': '常用工具', 'perm': self.get_model_perm(ToolsModel, 'view'), 'icon': 'fa fa-support', 'menus': ( { 'title': '加解密', 'url': '/tools/enc_dec_tool', 'perm': self.get_model_perm(EncDecModel, 'view'), 'icon': 'fa fa-smile-o' }, { 'title': '加權(quán)益點數(shù)', 'url': '/tools/add_benefit_points_tool', 'perm': self.get_model_perm(AddBenefitPointModel, 'view'), 'icon': 'fa fa-smile-o' }, { 'title': '生成兌換碼', 'url': '/tools/gen_cashing_tool', 'perm': self.get_model_perm(GenCashingModel, 'view'), 'icon': 'fa fa-smile-o' }, { 'title': '換手機號', 'url': '/tools/change_phone_tool', 'perm': self.get_model_perm(ChangePhoneModel, 'view'), 'icon': 'fa fa-smile-o' }, { 'title': '生成會員', 'url': '/tools/init_member_tool', 'perm': self.get_model_perm(InitMemberModel, 'view'), 'icon': 'fa fa-smile-o' }, { 'title': '生成卡號', 'url': '/tools/gen_card_number_tool', 'perm': self.get_model_perm(GenCardNumberModel, 'view'), 'icon': 'fa fa-smile-o' }, { 'title': 'ras生成簽名', 'url': '/tools/gen_rsa_sign_tool', 'perm': self.get_model_perm(GenRsaSignModel, 'view'), 'icon': 'fa fa-smile-o' }, # { # 'title': '單個退款', # 'url': '/tools/refund_member_tool', # 'perm': self.get_model_perm(Realname, 'view'), # 'icon': 'fa fa-smile-o' # }, ) } ] # 將title和footer信息進行注冊 xadmin.site.register(views.CommAdminView, GlobalSettings)
url注冊
from django.conf.urls import url from tools import views urlpatterns = [ url(r'^real_name_tool$', views.RealnamView.as_view()), url(r'^enc_dec_tool$', views.EncDecView.as_view()), url(r'^add_benefit_points_tool$', views.AddBenefitPointView.as_view()), url(r'^gen_cashing_tool$', views.GenCashingView.as_view()), url(r'^change_phone_tool$', views.ChangePhoneView.as_view()), url(r'^init_member_tool$', views.InitMemberView.as_view()), url(r'^refund_member_tool$', views.RefundMemberView.as_view()), url(r'^gen_card_number_tool$', views.GenCardNumberView.as_view()), url(r'^gen_rsa_sign_tool$', views.GenRsaSignView.as_view()), url(r'^add_uv$', views.add_uv_view), url(r'^real_name_api$', views.real_name_view), ]
其中一個from表單
class EncDecForm(forms.Form): ENC_DEC_TYPE = ( ("enc", "加密"), ("dec", "解密"), ) enc_dec_str = forms.CharField(label='字符串', required=True, help_text='需要加密/解密的字符串') enc_dec_type = forms.ChoiceField(choices=ENC_DEC_TYPE, required=True, label="操作類型") result = forms.CharField(label='結(jié)果', required=False, widget=forms.TextInput(attrs={'readonly': 'true'}))
其中一個視圖函數(shù)
class EncDecView(View): def get(self, request): return render(request, 'tools/enc_dec_str.html', {'enc_dec_form': EncDecForm()}) def post(self, request): enc_dec_form = EncDecForm(request.POST) if enc_dec_form.is_valid(): enc_dec_str = request.POST.get("enc_dec_str", "") enc_dec_type = enc_dec_form.cleaned_data["enc_dec_type"] try: # decrypt_info, encrypt_info result = eval(enc_dec_type + "rypt_info")(enc_dec_str) logger.info(result) messages.success(request, '加解密查看結(jié)果↓') enc_dec_form = EncDecForm(initial={"result":result, "enc_dec_type": enc_dec_type}) except Exception as e: logger.error(e) messages.error(request, '加解密異常') return render(request, 'tools/enc_dec_str.html', {'enc_dec_form': enc_dec_form}) else: return render(request, 'tools/enc_dec_str.html', {'enc_dec_form': enc_dec_form})
效果
授權(quán)代碼
使用
managed = True 空model
class ToolsModel(models.Model): class Meta: managed = True verbose_name = '常用工具' verbose_name_plural = verbose_name
給子賬號授權(quán)
子賬號登錄 展示一些你寫menu
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python和wxPython實現(xiàn)下載視頻封面
這篇文章主要為大家詳細介紹了如何使用Python和wxPython實現(xiàn)下載視頻封面,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04Python 跨文件夾導(dǎo)入自定義包的實現(xiàn)
有時我們自己編寫一些模塊時,跨文件夾調(diào)用會出現(xiàn)ModuleNotFoundError: No module named 'XXX',本文就來介紹一下解決方法,感興趣的可以了解一下2023-11-11python獲取網(wǎng)絡(luò)圖片方法及整理過程詳解
這篇文章主要介紹了python獲取網(wǎng)絡(luò)圖片方法及整理過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12Python使用爬蟲爬取靜態(tài)網(wǎng)頁圖片的方法詳解
這篇文章主要介紹了Python使用爬蟲爬取靜態(tài)網(wǎng)頁圖片的方法,較為詳細的說明了爬蟲的原理,并結(jié)合實例形式分析了Python使用爬蟲來爬取靜態(tài)網(wǎng)頁圖片的相關(guān)操作技巧,需要的朋友可以參考下2018-06-06