Я пишу додаток зі списком завдань, щоб допомогти собі розпочати роботу з 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 щось негативне? Можливо, я можу взагалі відмовитись від кастингу.
TemplateSyntaxError: Could not parse the remainder: '(todo.author)' from 'str(todo.author)'
будь-які ідеї?