Python을 시작하는 데 도움이되는 ToDo 목록 앱을 작성 중입니다. 앱이 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가 문자열이 아니기 때문이라고 생각했습니다. 값을 문자열로 읽을 수 있습니까? 아니면 객체를 String으로 캐스트 할 수 있습니까?
감사!
편집 : 여기 내 할일 클래스입니다
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)'
합니다. 아이디어가 있습니까?