【发布时间】:2011-07-31 00:39:04
【问题描述】:
现在使用 Django 已经不到 1 年了,但这对我来说是新的。希望有人吗?
我要做的是从一个数据库中读取一个 Person 对象(只读/只读,最少的人员数据)来填充我的数据库(读/写,更广泛的人员信息)。
我有 2 个模型,在不同的数据库中:
每个人.py: 类人(模型。模型): emplid = models.CharField(max_length=15,primary_key=True) ...(其他字段已删除)
class Meta:
app_label = u'everyone'
db_tablespace = u'everyone'
db_table = u'people_names'
managed = False
people.py:
类人(模型。模型):
emplid = models.CharField(max_length=11, db_column='emplid', primary_key=True)
...(其他字段已删除)
class Meta:
db_table = u'person'
app_label = u'commons'
db_tablespace = u'people'
第二人称模型是我的默认数据库,所以#1 是“everyone.Person”,而#2 只是“Person”。
我试过了(view.py):
try:
person = everyone.Person.objects.get(pk=emplid)
except everyone.Person.DoesNotExist: # person not found by "get"
do some stuff
finally:
do some other stuff
但 django 抱怨:全局名称 'everyone' 未定义。
如果我将“Person”替换为“everyone.Person”,则此代码有效(但我当然可以访问 错误的数据库。
当我这样做时:
person = everyone.Person.objects.get(pk=emplid)
在带有错误 empid 的命令行中,shell 正确返回
condition everyone.Person.DoesNotExist raised
我可以使用“filter”而不是“get”来解决这个问题,并处理返回的 QuerySet 对象,但我只是想知道是否有其他人注意到这一点并知道如何让“Get”在以下情况下工作访问另一个数据库。
谢谢,布赖恩
【问题讨论】:
标签: django django-views