Python ile başlamama yardımcı olmak için bir Yapılacaklar listesi uygulaması yazıyorum. Uygulama GAE üzerinde çalışıyor ve ben yapılacak işler Veri Deposu'nda depoluyorum. Herkesin eşyalarını onlara ve tek başlarına göstermek istiyorum. Sorun, uygulamanın şu anda tüm öğeleri tüm kullanıcılara göstermesidir, böylece ne yazdığınızı ve ne yazdığımı görebilirim. Todo.author nesnemi bir dizeye atmanın ve kullanıcının adıyla eşleşip eşleşmediğini görmenin iyi bir başlangıç olacağını düşündüm, ancak bunu nasıl yapacağımı bulamıyorum.
Bu benim main.py dosyamda bulunan
...
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('/')
İndex.html dosyamda orijinal olarak şuna sahiptim:
<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>
ancak öğeleri yalnızca onları oluşturan kullanıcıya görüntülemek istiyorum. Denemeyi düşündüm
{% for todo in todos %}
{% ifequal todo.author nickname %}
<input type="checkbox"> {{todo.item}} <hr />
{% endifequal %}
{% endfor %}
boşuna. Liste boş çıkıyor. Bunun todo.author'un bir dize olmaması olduğunu varsaydım. Değeri bir dize olarak okuyabilir miyim, yoksa nesneyi String'e çevirebilir miyim?
Teşekkürler!
Düzenleme: İşte benim Todo dersim
class Todo(db.Model):
author = db.UserProperty()
item = db.StringProperty()
completed = db.BooleanProperty()
date = db.DateTimeProperty(auto_now_add=True)
Yazarımı StringProperty olarak değiştirmek herhangi bir şeyi olumsuz etkiler mi? Belki oyuncu seçiminden tamamen vazgeçebilirim.
TemplateSyntaxError: Could not parse the remainder: '(todo.author)' from 'str(todo.author)'
herhangi bir fikir?