Saya menulis aplikasi daftar ToDo untuk membantu diri saya sendiri memulai Python. Aplikasi ini berjalan di GAE dan saya menyimpan item rencana di Data Store. Saya ingin menampilkan item semua orang kepada mereka, dan mereka sendiri. Masalahnya adalah aplikasi saat ini menampilkan semua item ke semua pengguna, jadi saya dapat melihat apa yang Anda tulis, dan Anda melihat apa yang saya tulis. Saya pikir mentransmisikan objek todo.author saya ke string dan melihat apakah itu cocok dengan nama pengguna akan menjadi awal yang baik, tetapi saya tidak tahu bagaimana melakukan itu.
Inilah yang saya miliki di main.py saya
...
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('/')
Di index.html saya memiliki ini awalnya:
<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>
tapi saya ingin menampilkan item hanya kepada pengguna yang membuatnya. Saya berpikir untuk mencoba
{% for todo in todos %}
{% ifequal todo.author nickname %}
<input type="checkbox"> {{todo.item}} <hr />
{% endifequal %}
{% endfor %}
tidak berhasil. Daftar tersebut ternyata kosong. Saya berasumsi itu karena todo.author bukanlah sebuah string. Dapatkah saya membaca nilai sebagai string, atau dapatkah saya mentransmisikan objek ke String?
Terima kasih!
Edit: Ini kelas Todo saya
class Todo(db.Model):
author = db.UserProperty()
item = db.StringProperty()
completed = db.BooleanProperty()
date = db.DateTimeProperty(auto_now_add=True)
Akankah mengubah penulis saya menjadi StringProperty berpengaruh negatif? Mungkin aku bisa melupakan casting sama sekali.
TemplateSyntaxError: Could not parse the remainder: '(todo.author)' from 'str(todo.author)'
ada ide?