Я использую механизм Google App, чтобы пользователь мог войти на сайт. Как только они войдут в систему, я создаю для них токен и использую это, чтобы проверить, вошел ли пользователь в систему. Я хочу иметь возможность отображать другое сообщение для пользователей в первый раз и другое для возвращающихся пользователей.
{% ifequal cookie None %}
<a href="https://foursquare.com/oauth2/authenticate?client_id=X&response_type=code&redirect_uri=http://localhost:8080/">Log In</a>
<hr></hr>
{% else %}
{% for user in set %}
{% ifequal user.session_ID access_token %}
<a href="/logout">Logout {{user.user_name}}</a>
<hr></hr>
{% else %}
{%endifequal%}
{% endfor %}
<h3 align="center">
{% endifequal %}
В настоящее время существует только два варианта: подписанный и не.
Предполагая, что объект вашего профиля пользователя выглядит примерно так:
class UserProfile(db.Model):
UserID = db.UserProperty()
FirstSession = db.DateTimeProperty(auto_now_add=True)
Попробуйте следующее:
from google.appengine.api import users
user = users.get_current_user()
is_existing_user = UserProfile.all().filter('UserID = ', user).get()
if is_existing_user:
#do something
else:
#do something else
check = db.Query(User) check = check.filter("foursq_auth_token = ", access_Token) results = check.fetch(limit=1) if len(results) > 0: doRender(self, "index.html", {"logged_in":"yes"})
Но, похоже, это не работает :-(
Я использовал бы логическую переменную в пользовательском классе для этого случая:
is_first_time_user = db.BooleanProperty(default=True,verbose_name="is First Time User")
или функцию в классе пользователя, которую может использовать тег шаблона.