Python Django在错误的数据库中搜索tabel
Settings.py:Python Django在错误的数据库中搜索tabel,python,mysql,django,django-admin,Python,Mysql,Django,Django Admin,Settings.py: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'leavebuddy_master', 'USER': 'master___user', 'PASSWORD': '******', 'HOST': '/Applications/MAMP/tmp/mys
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'leavebuddy_master',
'USER': 'master___user',
'PASSWORD': '******',
'HOST': '/Applications/MAMP/tmp/mysql/mysql.sock',
'PORT': '3306',
},
'company': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'leavebuddy_company',
'USER': 'leavebuddy_user2',
'PASSWORD': 'cork10[lad',
'HOST': '/Applications/MAMP/tmp/mysql/mysql.sock',
#'HOST': '127.0.0.1',
'PORT': '3306',
}
}
Models.py 1st:(对于默认数据库):
Models.py第二版:(适用于公司数据库):
Admin.py:
from django.contrib import admin
from leavebuddymaster.models import Company
from leavebuddyapp.models import Employee
class MultiDBModelAdmin(admin.ModelAdmin):
using = 'company'
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=None, **kwargs):
# Tell Django to populate ForeignKey widgets using a query
# on the 'other' database.
return super(MultiDBModelAdmin, self).formfield_for_foreignkey(db_field, request=request, using=self.using, **kwargs)
def formfield_for_manytomany(self, db_field, request=None, **kwargs):
# Tell Django to populate ManyToMany widgets using a query
# on the 'other' database.
return super(MultiDBModelAdmin, self).formfield_for_manytomany(db_field, request=request, using=self.using, **kwargs)
class EmployeeAdmin(MultiDBModelAdmin):
list_display = ('id', 'name', 'company')
admin.site.register(Employee, EmployeeAdmin)
但现在,当我试图通过管理站点添加员工时,它给了我一个错误
(1146, "Table 'leavebuddy_master.leavebuddyapp_employee' doesn't exist")
但它应该在“company”数据库中搜索employee表。你们能给我指个方向吗。提前感谢。在更改数据库后,您是否进行了syncdb?是的,我做了两次,运气不好。Thanx Deepankar,实际上我必须执行“python manage.py syncdb--migrate”。admin.site.register(employee,MultiDBModelAdmin)
from django.contrib import admin
from leavebuddymaster.models import Company
from leavebuddyapp.models import Employee
class MultiDBModelAdmin(admin.ModelAdmin):
using = 'company'
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=None, **kwargs):
# Tell Django to populate ForeignKey widgets using a query
# on the 'other' database.
return super(MultiDBModelAdmin, self).formfield_for_foreignkey(db_field, request=request, using=self.using, **kwargs)
def formfield_for_manytomany(self, db_field, request=None, **kwargs):
# Tell Django to populate ManyToMany widgets using a query
# on the 'other' database.
return super(MultiDBModelAdmin, self).formfield_for_manytomany(db_field, request=request, using=self.using, **kwargs)
class EmployeeAdmin(MultiDBModelAdmin):
list_display = ('id', 'name', 'company')
admin.site.register(Employee, EmployeeAdmin)
(1146, "Table 'leavebuddy_master.leavebuddyapp_employee' doesn't exist")