django xadmin实现自定义页面并且权限控制方式

 更新时间:2023年08月25日 17:18:01   作者:pzl_pzl  
这篇文章主要介绍了django xadmin实现自定义页面并且权限控制方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

写一些内部工具 

自定也页面效果图

代码如下

class GlobalSettings(object):
    # 修改title
    site_title = 'VIP权益服务后台'
    # 修改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': '加权益点数',
                        '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='结果', required=False, widget=forms.TextInput(attrs={'readonly': 'true'}))

其中一个视图函数

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, '加解密查看结果↓')
                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})

效果

授权代码

使用

managed = True  空model
class ToolsModel(models.Model):
    class Meta:
        managed = True
        verbose_name = '常用工具'
        verbose_name_plural = verbose_name

给子账号授权 

子账号登录 展示一些你写menu

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 一文详解如何从根本上优雅地解决VSCode中的Python模块导入问题

    一文详解如何从根本上优雅地解决VSCode中的Python模块导入问题

    有时你可能会遇到这种问题,明明用pip安装好了一个python模块,但在VScode中总是显示错误,这篇文章主要给大家介绍了关于如何从根本上优雅地解决VSCode中的Python模块导入问题的相关资料,需要的朋友可以参考下
    2024-07-07
  • Django 1.10以上版本 url 配置注意事项详解

    Django 1.10以上版本 url 配置注意事项详解

    这篇文章主要介绍了Django 1.10以上版本 url 配置注意事项详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • NumPy中的维度Axis详解

    NumPy中的维度Axis详解

    今天小编就为大家分享一篇NumPy中的维度Axis详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python中turtle库的简单使用教程

    python中turtle库的简单使用教程

    这篇文章主要给大家介绍了关于python中turtle库的简单使用教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python ConfigParser库轻松读写INI文件实例探究

    Python ConfigParser库轻松读写INI文件实例探究

    这篇文章主要为大家介绍了Python ConfigParser库轻松读写INI文件实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python利用PyMuPDF模块实现快速转换PDF文件

    Python利用PyMuPDF模块实现快速转换PDF文件

    PDF是一种广泛使用的文件格式,可以在任何设备上查看和打印,那么如何用Python和PyMuPDF制作你想要大小的PDF文件呢,本文就来和大家详细讲讲
    2023-08-08
  • Python实现的计算马氏距离算法示例

    Python实现的计算马氏距离算法示例

    这篇文章主要介绍了Python实现的计算马氏距离算法,简单说明了马氏距离算法原理,并结合实例形式分析了Python实现与使用马氏距离算法的相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • Python获取excel内容及相关操作代码实例

    Python获取excel内容及相关操作代码实例

    这篇文章主要介绍了Python获取excel内容及相关操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 解决springboot yml配置 logging.level 报错问题

    解决springboot yml配置 logging.level 报错问题

    今天小编就为大家分享一篇解决springboot yml配置 logging.level 报错问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Linux下使用python调用top命令获得CPU利用率

    Linux下使用python调用top命令获得CPU利用率

    这篇文章主要介绍了Linux下使用python调用top命令获得CPU利用率,本文直接给出实现代码,需要的朋友可以参考下
    2015-03-03

最新评论