ฉันกำลังเขียนแอพ ToDo list เพื่อช่วยตัวเองในการเริ่มต้นกับ Python แอปทำงานบน GAE และฉันกำลังจัดเก็บรายการสิ่งที่ต้องทำใน Data Store ฉันต้องการแสดงรายการของทุกคนให้พวกเขาและพวกเขาคนเดียว ปัญหาคือขณะนี้แอปแสดงรายการทั้งหมดแก่ผู้ใช้ทั้งหมดดังนั้นฉันจึงเห็นสิ่งที่คุณเขียนและคุณเห็นสิ่งที่ฉันเขียน ฉันคิดว่าการส่งวัตถุ 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 %}
ไม่มีประโยชน์ รายการจะว่างเปล่า ฉันคิดว่าเป็นเพราะสิ่งที่ต้องทำผู้เขียนไม่ใช่สตริง ฉันสามารถอ่านค่าเป็นสตริงได้หรือไม่หรือฉันสามารถส่งวัตถุเป็น String ได้หรือไม่
ขอบคุณ!
แก้ไข: นี่คือคลาส 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)'
มีแนวคิดใดบ้าง