主页

xadmin列表页面, 多选记录, 进行操作(标记为订阅, 未订阅)

Q: xadmin列表页面, 多选记录, 进行操作(标记为订阅, 未订阅) A: 删除是一个Action(特殊的plugin), 所以可以仿照着删除写Action actions.py class YaraRulesetLookatAction(BaseActionView): action_name = "lookat_yararuleset" description = '订阅 %(verbose_name_plural)s' model_perm = 'change' # 该 Action 所需权限 icon = 'fa fa-bookmark' # 执行的动作 def do_action(self, queryset)...

阅读更多

xadmin列表页面 顶部 增加自定义按钮 来触发对整个model表的操作

Q: xadmin列表页面 顶部 增加自定义按钮 来触发对整个model表的操作 A: 如果是对单个数据库记录操作, 可以直接显示自定义列解决. 如果是对多行记录触发操作, 可以写Actions来解决. 对整个数据库表进行操作, 类似数据导入导出(内置的plugin). 可以通过写plugins解决. plugins.py from django.template import loader from xadmin.views import BaseAdminPlugin class SendHuntingRulesPlugin(BaseAdminPlugin): send_hunting_rules = False def init_request(s...

阅读更多

xadmin django里面如何更改model里面field名称, 但是不丢失数据

Q: django里面如何更改model里面field名称, 但是不丢失数据 A: 执行python manage.py makemigrations之后, 打开迁移文件, 找到相关字段部分. 改为 migrations.RenameField( model_name='case', old_name='update_user', new_name='create_user', ), 如果除了field名称之外,还有其他修改的话, 比如verbose_name或者max_length修改. 那么先忽略这些修改. 这个迁移文件里只保留rename行为. 然后再执行一次python manag...

阅读更多

xadmin如何自定义字段在页面上的显示效果. 比如使用自己特定的js控件

Q: 如何自定义字段在页面上的显示效果. 比如使用自己特定的js控件 A: 可以自定义widgets 自定义form将widgets设置到form的对应的field上 在OptionClass里设置form 将OptionClass设置到xadmin上 举例: 在页面上显示tags字段时候想使用select2.js这个模板来实现这样的效果. 也就是多选的select框, 选中的放在上面作为标签, 可以叉掉. models.py 首先models.py里面tags字段使用了postgres才有的ArrayField来存储多个选项 from django.contrib.postgres.fields import ArrayField from dj...

阅读更多

docker把根分区占满了怎么办?

由于早上到公司发现/var/lib/docker/overlay2 占用空间很大,决定做一下/var/lib/docker目录迁移工作 首先需要停止docker服务 systemctl stop docker 通过命令df -h 先去看下磁盘大概的情况,找一个大的空间 创建docker的新目录,我这边找了data, 所以我这边的新目录地址是 /data/docker_lib/ mkdir -p /data/docker_lib 注:参数-p 确保目录名称存在,如果目录不存在的就新创建一个。 开始迁移 rsync -avzP /var/lib/docker /data/docker_lib/ 先确认是否安装...

阅读更多

xadmin实现编辑界面ArrayField字段显示为checkbox

adminx.py from django.forms import ModelForm, CheckboxSelectMultiple, MultipleChoiceField class YaraRulesetForm(ModelForm): scan_file_path_list = MultipleChoiceField(choices=YaraRuleset.SCAN_FILE_PATH_CHOICES, widget=CheckboxSelectMultiple(), label="测试路径") class YaraRulesetAdmin: form = YaraRulesetForm 显示效果

阅读更多

xadmin实现textarea代码高亮

adminx.py from .widgets import YaraRulesetWidget class YaraRulesetForm(ModelForm): ruleset_raw_string = CharField(widget=YaraRulesetWidget) class YaraRulesetAdmin: form = YaraRulesetForm widgets.py # -*- coding: utf-8 -*- __author__ = '陈章' __date__ = '2019-07-16 12:21' import os from django import forms class YaraRulesetWid...

阅读更多

xadmin字段编辑自定义样式select2效果的tags

adminx.py from .widgets import Select2Widget class RulesetForm(ModelForm): tags = SimpleArrayField(CharField(), widget=Select2Widget, required=False) class RulesetAdmin: form = RulesetForm widgets.py import os from django import forms from django.utils.safestring import mark_safe from common.models import Tags pwd = os.path...

阅读更多