【发布时间】:2013-05-22 00:32:28
【问题描述】:
我正在编写一个 ToDo 列表应用程序来帮助自己开始使用 Python。该应用程序在 GAE 上运行,我将待办事项存储在数据存储中。我想向他们展示每个人的物品,而且只有他们一个人。问题是应用程序当前向所有用户显示所有项目,所以我可以看到你写的内容,你也可以看到我写的内容。我认为将我的 todo.author 对象转换为字符串并查看它是否与用户名匹配是一个好的开始,但我不知道该怎么做。
这就是我在 main.py 中的内容
...
user = users.get_current_user()
if user:
nickname = user.nickname()
todos = Todo.all()
template_values = {'nickname':nickname, 'todos':todos}
...
def post(self):
todo = Todo()
todo.author = users.get_current_user()
todo.item = self.request.get("item")
todo.completed = False
todo.put()
self.redirect('/')
在我的 index.html 中,我最初有这个:
<input type="text" name="item" class="form-prop" placeholder="What needs to be done?" required/>
...
<ul>
{% for todo in todos %}
<input type="checkbox"> {{todo.item}} <hr />
{% endfor %}
</ul>
但我想只向创建它们的用户显示项目。我想试试
{% for todo in todos %}
{% ifequal todo.author nickname %}
<input type="checkbox"> {{todo.item}} <hr />
{% endifequal %}
{% endfor %}
无济于事。列表变成空白。我认为这是因为 todo.author 不是字符串。我可以将值作为字符串读出,还是可以将对象转换为字符串?
谢谢!
编辑:这是我的 Todo 类
class Todo(db.Model):
author = db.UserProperty()
item = db.StringProperty()
completed = db.BooleanProperty()
date = db.DateTimeProperty(auto_now_add=True)
将我的作者更改为 StringProperty 是否会产生负面影响?也许我可以完全放弃施法。
【问题讨论】: