如何修复"对象不可迭代"错误?
大家好,
我还是个新手,当时我正在为一个类的Google应用程序引擎项目工作,然后出现了这个错误。我不知道为什么,因为就在它的正上方,我有相同的对象类型就在它的正上方,当我从另一个滤镜上取下滤镜时,它工作得很好,我就是做不到,否则就会把一切都搞砸
选择 | 换行 | 行号
- def LoginBar():
- user = users.get_current_user()
- greet = Greeting.all()
- info = greet
- greet.filter("username =", user)
- info = Greeting.all()
- url_account_linktext = "Account"
- check = 0
- if user:
- for info in greet:
- if info.username == user:
- check = 1
- break
- if check == 0:
- greeting = Greeting()
- greeting.username = users.get_current_user()
- greeting.email = user.email()
- greeting.name = greeting.username.nickname()
- greeting.put()
- url = users.create_logout_url('/')
- url_linktext = 'Logout'
- else:
- url = users.create_login_url('/')
- url_linktext = 'Login'
- template_values = {
- 'info': info,
- 'greetings': greet,
- 'url': url,
- 'url_linktext': url_linktext,
- 'url_account_linktext': url_account_linktext,
- }
如果我在此代码中使用INFO变量
选择 | 换行 | 行号
- {% for greeting in info %}
- <br /><b>{{ greeting.name }}</b><br />
- {% endfor %}
它抛出这个异常,但是如果我把greet放进去,不管它是否经过过滤,它都可以工作。知道为什么吗?我真的希望我能用greet,但遗憾的是,这不起作用,因为我在其他地方用它来做其他事情。提前谢谢你
编辑,这是回溯
选择 | 换行 | 行号
- Traceback (most recent call last):
- File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 515, in __call__
- handler.get(*groups)
- File "C:\Users\William\Documents\workspace\242Homework2\src\homework\main.py", line 109, in get
- self.response.out.write(template.render(path, values))
- File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\template.py", line 143, in render
- return t.render(Context(template_dict))
- File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\template.py", line 183, in wrap_render
- return orig_render(context)
- File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\template\__init__.py", line 168, in render
- return self.nodelist.render(context)
- File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\template\__init__.py", line 705, in render
- bits.append(self.render_node(node, context))
- File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\template\__init__.py", line 718, in render_node
- return(node.render(context))
- File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\template\defaulttags.py", line 175, in render
- return self.nodelist_true.render(context)
- File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\template\__init__.py", line 705, in render
- bits.append(self.render_node(node, context))
- File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\template\__init__.py", line 718, in render_node
- return(node.render(context))
- File "C:\Program Files (x86)\Google\google_appengine\lib\django\django\template\defaulttags.py", line 99, in render
- values = list(values)
- TypeError: 'Greeting' object is not iterable