我搜寻了Internet,但我的问题似乎是django管理工具中的错误,但事实并非如此。
我正在尝试使用django管理工具将记录添加到非默认数据库。我已经将admin.py设置为使用文档中所述的MultiDBModel管理员。
class MultiDBModelAdmin(admin.ModelAdmin):
# A handy constant for the name of the alternate database.
using = 'brite_obs'
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().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().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().formfield_for_manytomany(db_field, request, using=self.using, **kwargs)
admin.site.register(ObsField, MultiDBModelAdmin)
数据库正常工作。它已连接,我可以查看记录,也可以更改记录,但是当我尝试添加记录时。我收到以下错误。
异常类型:ProgrammingError
异常值:(1146,“表'django_site.obs_field'不存在”)
django_site是默认数据库,因为我要连接的数据库是brite_obs。我必须正确连接了某些东西,但是事实证明它可以用于查看或更改记录,但不能用于添加记录。
答案 0 :(得分:0)
该异常表明表django_“ site.obs_field”不存在。
检查您传递的所有字段(使用调试器pdb / IPDB)
通过Shell控制台从数据库读取对象,查看属性并检查。
尝试在shell中创建一个新对象并查看您获得的属性。看看有什么区别。
完成所有这些操作后,您将在管理页面中知道您的错误。
享受