0
我正在尝试使用ModelChoiceField从外部数据库获取填充的值。如何使用Django将ModelChoiceField与外部数据库值结合使用
我在setting.py添加一个附加的数据库,并建立了一个externaldb.py文件在我的应用程序如下:
from django.db import connections
def Location():
rs = []
cursor = connections['mydb'].cursor()
cursor.execute("SELECT city FROM db.data_center WHERE removed is null;")
zones = cursor.fetchall()
for v in zones[::]:
rs.append(v)
的使用python manage.py壳我能做到这一点
>>>from platform.externaldb import Location
>>>print Location()
>>>[(u'India-01',), (u'Singapore-01',), (u'Europe-01',)]
所以我得到的值,但如何我得到的出现在一个下拉框。这是我的forms.py
forms.py
from platform.externaldb import Location
zone = forms.ModelChoiceField(Location(), label='Zone')
但是,这并不为我工作..我这样做,所以3个值是如何出现在ModelChoiceField下拉列表?
谢谢 - 奥利
我会尽力..虽然这似乎工作zone = forms.ModelChoiceField(queryset = Locations.objects.all(),label ='Zone') 。我以为有人发布了,但也许编辑他们的答案。我以为我试过queryset = Locations.objects.all()之前,但现在它的工作.. – Oli 2012-08-16 11:36:04
使用ModelChoiceField和查询集不起作用,因为我以前的评论建议。我会尝试ChoiceField选项 – Oli 2012-08-16 11:45:25
我一直无法获得forms.ChoiceField(选择= Locations(),label =“Zone”)才能正常工作。我一直得到这个错误'太多的值解包'。我会继续挖掘..但任何想法? – Oli 2012-08-16 14:09:56