Django admin 使用多个数据库
2024-09-25 10:03:22
admin是django自带的一个app,那它涉及的是对Model的所有对象进行增删改查,如果model来自多个数据库如何处理呢?
重写admin.ModelAdmin的如下几个方法就好了:
class MultiDBModelAdmin(admin.ModelAdmin):
# A handy constant for the name of the alternate database.
using = 'other' def save_model(self, request, obj, form, change):
# Tell Django to save objects to the 'other' database.
obj.save(using=self.using) def delete_model(self, request, obj):
# Tell Django to delete objects from the 'other' database
obj.delete(using=self.using) def get_queryset(self, request):
# Tell Django to look for objects on the 'other' database.
return super(MultiDBModelAdmin, self).get_queryset(request).using(self.using) def formfield_for_foreignkey(self, db_field, request, **kwargs):
# Tell Django to populate ForeignKey widgets using a query
# on the 'other' database.
return super(MultiDBModelAdmin, self).formfield_for_foreignkey(db_field, request, using=self.using, **kwargs) def formfield_for_manytomany(self, db_field, request, **kwargs):
# Tell Django to populate ManyToMany widgets using a query
# on the 'other' database.
return super(MultiDBModelAdmin, self).formfield_for_manytomany(db_field, request, using=self.using, **kwargs)
MultiDBModelAdmin类继承admin.ModelAdmin
然后需要使用这个数据库连接的model直接继承这个类就可以了。
class UserInfoAdmin(MultiDBModelAdmin):
list_display = ('user_name', 'user_email', 'user_mobile')
参考:https://docs.djangoproject.com/en/1.10/topics/db/multi-db/#topics-db-multi-db-routing
最新文章
- IOS彩票第一天基本框架搭建
- 利用mstsc远程桌面传送文件,记录一下
- recv和send函数
- 如何迁移测试的MAGENTO到正式运行的MAGENTO
- Android中 ListView 详解(二)
- snowflake算法(java版)
- adb出现adb server is out of date时的解决的方法
- -_-#【Canvas】圆弧运动
- 线段树hdu1754
- Definition of:payload
- Oracle误删恢复
- 小白的python之路11/15 awk 77-78
- 在Java的Condition接口【唤醒全部线程】
- JavaScript基础视频教程总结(111-120章)
- Kubernetes集群搭建之企业级环境中基于Harbor搭建自己的私有仓库
- @RequestMapping 详解
- kdump简单的介绍
- 流畅的python笔记
- c#数据库设计--1、概述
- AssetBundle加载API