0

мой вопрос связан с Python с Google App Engine Datastore и Jinja2.Как проверить в jinja2 или python, что запрос данных Datastore для приложения Google не имеет результатов?

Я создал вид, называемый Channel, с двумя свойствами: content и userid.

class Channel(ndb.Model): 
    content = ndb.StringProperty() 
    userid = ndb.StringProperty() 

Идентификатор_пользователя является Идентификатор_пользователя извлекается из Users API, которые могут быть получены, когда пользователь вошел в систему.

Когда пользователь регистрируется в бегаю следующий запрос на мой канал рода для извлечения пользователя канал:

channels = Channel.query(Channel.userid == user.user_id()) 

Он отлично работает, когда пользователь уже создал канал, и я могу представить канал результатов т o пользователь со следующим кодом Jinja2:

{% for channel in channels %} 
<p>userid: {{ channel.userid }} | content: {{ channel.content }}</p> 
{% endfor %} 

Проблема в том, что пользователь не создал канал. В коде Jinja2 нет ничьих, даже «userid:» или «| содержание:» и я хотел бы показать сообщение пользователю, когда запрос не возвращает никаких результатов (каждый пользователь может создать только один канал), чтобы помочь ему создать новый канал, но не знаю точно, как проверить это на Python или Jinja2.

ответ

2

С channels - итератор, вы не можете знать, что там, пока вы не перейдете через него. Тем не менее, вы можете также просто получать данные, как это:

channels = Channel.query(Channel.userid == user.user_id()).fetch() 

Тогда вы можете просто проверить, если список пуст или не нравится:

{% if channels %} 
{% for channel in channels %} 
<p>userid: {{ channel.userid }} | content: {{ channel.content }}</p> 
{% endfor %} 
{% else %} 
<p>No channels!</p> 
{% endif %} 
Смежные вопросы