主页

使用django-rest-framework保存models数据的时候上传多张图片

使用drf的时候, 保存图片, 可以使用models.ImageField, 然后使用表单提交. 但是有的时候一个model对应多张图片. 比方说创建一个作品, 这个作品有7页图片需要保存. 那首先应该建立两张表, 一张works作品表, 一张works_file作品文件表.并在works_file中设置外键关联到作品表. 并且works_file中要有字段保存页码信息,防止混乱. class Works(models.Model): id = models.AutoField(primary_key=True) user = models.ForeignKey(User, on_delete=models.DO_NOTHING, db_constraint=Fa...

阅读更多

在jekyll中转义字符{% %} {{}}

由于jekyll模板跟django模板中的继承符号和引用变量的符号冲突,导致直接写jekyll编译报错. 网上有两种方案, 一种是在代码前后加 但是这种方案, 自己尝试不奏效. 所以采用了第二种方案 ( 使用过转义, 不需要任何插件 最终代码 thehive/test.html 显示效果:

阅读更多

postgresql使用docker搭建与备份

postgresql使用docker搭建 使用docker拉取镜像 docker pull postgres 启动容器 docker run --name postgresql -e POSTGRES_PASSWORD=mypassword -e POSTGRES_USER=myuser -p 5432:5432 -v /data/db_pg:/var/lib/postgresql/data -d postgres 查看容器 docker ps -a 若服务未启动 docker start postgresql 进入容器 docker exec -it postgresql bash 登录postgresql psql -U root 修改密码...

阅读更多

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...

阅读更多

xadmin如何在列表页自定义列从接口批量查询(列表页上所有的一列数据走一个批量接口)

Q: 如何在列表页自定义列从接口批量查询(列表页上所有的一列数据走一个批量接口) A: 如果自定义列, 每一行记录都去查一个接口, 可以直接在models里或者在OptionClass里定义方法, 然后加到list_display属性当中即可. 现在想列表页所有的数据库记录走一个批量接口. 然后判断每一行记录的状态. 也就是一次request请求, 去请求一次接口. 如果在models里或者OptionClass里加方法的话. 或者写在__init__方法里, 实际上每一行数据库记录都会执行一遍. 这样会发生多次请求. 这里的实现方式是使用xadmin提供的插件. 继承BaseAdminPlugin实现其filter_hook的get方法, get方法只在请求的过程中执行一次....

阅读更多

xadmin如何在一个model的新增或编辑页面里面内嵌另一个model的编辑页面

Q: 如何在一个model的新增或编辑页面里面内嵌另一个model的编辑页面 A: 定义一个Inline类 在model的OptionClass里面讲Inline类注入到inlines属性里面 举例: 在IOC这个model里面内嵌了两个一对多的model. IOC和FileAttachment xadmin.py from .models import Case, Ioc, FileAttachment class IocInline: model = Ioc extra = 0 class FileAttachmentInline: model = FileAttachment extra = 0 class CaseFo...

阅读更多

xadmin如何在xadmin自定义菜单, 自定义页面

Q: 如何在xadmin自定义菜单, 自定义页面 A: 在xadmin.py,GlobalSettings中自定义菜单 自定义视图函数,并获取原来的菜单等信息(主要是为了用xadmin的模板),具体的自己看xadmin源码 在adminx.py中注册路由 html继承。 举例: xadmin.py: class GlobalSetting: site_title = 'XX后台管理' site_footer = 'XX公司' # menu_style = 'accordion' # 设置app折叠 def get_site_menu(self): return ( {'title':...

阅读更多