2009-11-27 48 views
1

你好我使用Django App Engine的補丁我建立了一個簡單的模型如下App Engine的模型和Django過濾

class Intake(db.Model): 
    intake=db.StringProperty(multiline=False, required=True) 
    #@permerlink 
    def get_absolute_url(self): 
     return "/timekeeper/%s/" % self.intake 
    class Meta: 
     db_table = "Intake" 
     verbose_name_plural = "Intakes" 
     ordering = ['intake'] 

我用下面的意見,以檢查是否有些東西在數據庫中存在,並添加數據庫

from ragendja.template import render_to_response 
from django.http import HttpResponse, Http404 
from google.appengine.ext import db 
from timekeeper.forms import * 
from timekeeper.models import * 

def checkintake(request, key): 
    intake = Intake.all().filter('intake=',key).count() 
    if intake<1: 
     return HttpResponse('ok') 
    else: 
     return HttpResponse('Exist in database') 

def addintake(request,key): 
    if Intake.all().filter('intake=',key).count()>1: 
     return HttpResponse('Item already Exist in Database') 
    else: 
     data = Intake(intake=cleaned_data[key]) 
     data.put() 
     return HttpResponse('Ok') 

我可以添加到數據庫沒有問題(當我做了Intake.all().count()它增加),但是當我檢查重點通過過濾我得到的計數爲零任何一個有任何存在於數據庫想法爲什麼我不能按鍵過濾?

回答

2

您需要在過濾器參數中的字段名稱和運算符之間插入空格 - 例如,使用.filter('intake =')而不是.filter('intake=')。使用平等過濾器,您也可以完全保留它,如.filter('intake')。沒有空格,等號被認爲是字段名稱的一部分。

+0

感謝您的幫助Nick – 2009-11-27 17:02:34