django管理员指定数据库(非默认)
我正在使用django admin来帮助编辑数据库。最近,我们添加了另一个数据库,因此在设置文件的数据库中使用默认值将不再有意义 现在,我的settings.py文件中有以下内容:django管理员指定数据库(非默认),django,django-models,Django,Django Models,我正在使用django admin来帮助编辑数据库。最近,我们添加了另一个数据库,因此在设置文件的数据库中使用默认值将不再有意义 现在,我的settings.py文件中有以下内容: DATABASES = { 'default': {}, 'animal_tracking': { 'ENGINE':'django.db.backends.mysql', 'NAME': 'AnimalTracking', 'USER': 'foo',
DATABASES = {
'default': {},
'animal_tracking': {
'ENGINE':'django.db.backends.mysql',
'NAME': 'AnimalTracking',
'USER': 'foo',
'PASSWORD': 'bar',
'HOST': '127.0.0.1',
'PORT': '3306',
},
'animal_information': {
'ENGINE':'django.db.backends.mysql',
'NAME': 'AnimalInformation',
'USER': 'foo',
'PASSWORD': 'bar',
'HOST': '127.0.0.1',
'PORT': '3306',
},
}
My admin.py文件包含:
from django.contrib import admin
from animal_tracking.models import at_animal_types, at_animals
# Register your models here.
class AnimalTypesAdmin(admin.ModelAdmin):
# Sets how the fields are displayed in the add / change section.
fieldsets = [
(None, {'fields': ['type', ]}),
]
# Sets what fields to be displayed in the change (view) section.
list_display = ('type', )
# Registers the current model administration to the admin page.
admin.site.register(at_animal_types, AnimalTypesAdmin)
class AnimalsAdmin(admin.ModelAdmin):
# Sets how the fields are displayed in the add / change section.
fieldsets = [
(None, {'fields': ['tracker_id', 'type', ]}),
('Log information (should not change)', {'fields': ['last_log', 'last_bat', 'last_lat', 'last_lon', ], 'classes': ['collapse']}),
]
# Sets what fields to be displayed in the change (view) section.
list_display = ('tracker_id', 'type', 'last_log', 'last_bat', 'last_lat', 'last_lon', )
# Sets what fields to allow filtering by.
list_filter = ['type', ]
# Sets what fields to allow searching by. Use table__field if foreign key.
search_fields = ['tracker_id', 'type__type', ]
# Registers the current model administration to the admin page.
admin.site.register(at_animals, AnimalsAdmin)
最初,管理部分将与默认数据库连接。但是现在我删除了默认数据库并添加了其他两个数据库,我得到了以下错误:
如果我将animal_tracking的设置复制到默认值,它会工作。因此,我的问题是:
如何指定django管理员应该使用哪个数据库?
谢谢大家! 您最好指定默认数据库,如果将默认值保留为空,则应写入数据库 在管理员中,您可以使用任何喜欢的数据库:
class AnimalTypesAdmin(admin.ModelAdmin):
using = 'animal_tracking'
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)
save_model
,delete_model
,formfield_for_foreignkey
,formfield_for_manytomy
也应该像示例中那样被覆盖