2010-05-01 31 views
2

我試圖在Django & GAE中創建一個簡單的視圖,它將檢查用戶是否有配置文件實體併爲每個案例輸出不同的信息。我有下面的程序,但不知何故GAE似乎總是返回一個對象。我的計劃是低於如何檢查GAE中是否存在記錄

 
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.") 

我的模型對象簡介定義如下:

 
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) 

感謝您的幫助。

回答

2

恐怕你忘了執行查詢。嘗試使用get()方法。它返回第一個結果,如果查詢沒有返回結果,則返回None。

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

謝謝你的工作..總是有助於有另一雙眼睛看看。 – VDev 2010-05-01 20:45:43

+0

因爲您將創建幾個表示結果的對象,因此執行「SELECT ____key____ FROM個人資料WHERE帳戶=:1」的速度會稍微快一些。 – 2010-05-02 00:22:23

相關問題