How to check for a record in GAE

I am trying to create a simple view in Django and GAE that checks if the user has a profile object and prints a different message for each case. I have the program below, but somehow GAE always seems to return an object. My program is below

import datetime
from django.http import HttpResponse, HttpResponseRedirect
from google.appengine.api import users
from google.appengine.ext import db
from models import Profile
import logging
#from accounts.views import profile

# Create your views here.
def login_view (request):
    user = users.get_current_user ()
    profile = db.GqlQuery ("SELECT * FROM Profile WHERE account =: 1",
                            users.get_current_user ())
    logging.info (profile)
    logging.info (user)
    if profile:
        return HttpResponse ("Congratulations Your profile is already created.")
    else:
        return HttpResponse ("Sorry Your profile is NOT created.")

My model object is defined by a profile like this:

class Profile (db.Model):
    first_name = db.StringProperty ()
    last_name = db.StringProperty ()
    gender = db.StringProperty (choices = set (["Male", "Female"]))
    account = db.UserProperty (required = True)
    friends = db.ListProperty (item_type = users.User)
    last_login = db.DateTimeProperty (required = True)

Thanks for the help.

+2


a source to share


1 answer


I'm afraid you forgot to complete your request. Try get () method . It returns the first result, or None if the query returns no results.



profile = db.GqlQuery("SELECT * FROM Profile WHERE account = :1",
                        users.get_current_user()).get()

      

+2


a source







All Articles