从DB中获取后,在表单中设置选择项

时间:2012-06-21 12:15:33

标签: python django google-app-engine widget

首先请原谅我在django,python和html中的跛脚。

我将小部件添加到html,我想填充数据库中的项目。我尝试了以下但它不起作用,它只显示了明显的('ALL'项目):

HTML:

<select name=\"accountName\" >
    <option value=\"ALL\">ALL</option>
    {% for item in select_items %}
    <option value=\"'+item.accountName+'\">'+item.accountName+'</option>
    {% endfor %}
</select>

的Python:

class StartPage(webapp.RequestHandler):
    def get(self):
    select_items = db.GqlQuery( "SELECT * FROM Registration" )
    self.response.out.write(template.render("tst.html", {'select_items': select_items}))

注意,DB确实包含东西,而不是空的。 感谢名单

3 个答案:

答案 0 :(得分:3)

我不是django专家,但我认为你的模板有一些错误。

<option value=\"'+item.accountName+'\">'+item.accountName+'</option>

应该是

<option value="{{ item.accountName }}">{{ item.accountName  }}</option>

了解更多信息: https://docs.djangoproject.com/en/dev/topics/templates/

答案 1 :(得分:3)

您的django语法错误。它应该是这样的:

{% for item in select_items %}
<option value="{{item.accountName}}">{{item.accountName}}</option>
{% endfor %}

你也不应该逃避双引号,例如

<select name=\"accountName\" >

应该只是

<select name="accountName" >

另外,你的python代码有缩进问题,但我想这与你在这里粘贴它的方式有关,而不是代码中的实际问题。

答案 2 :(得分:2)

我不认为你想要逃避HTML。

<select name="accountName" >
    <option value="ALL">ALL</option>
    {% for item in select_items %}
    <option value="{{ item.accountName }}">{{ item.accountName }}</option>
    {% endfor %}
</select>

其余的一目了然看起来没问题,但我的GAE生锈了。

希望你能得到更好的答案。