Django를 사용한 앱 엔진 모델 필터링
-
05-07-2019 - |
문제
안녕하세요 저는 Django App Engine 패치를 사용하고 있습니다. 다음과 같이 간단한 모델을 설정했습니다.
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()
증가합니다) 그러나 필터링하여 데이터베이스에 키가 존재하는지 확인하면 키로 필터를 필터링 할 수없는 이유가없는 사람이 있습니까?
해결책
필터 인수에 필드 이름과 연산자 사이에 공간을 삽입해야합니다. 예 : 사용 .filter('intake =')
대신에 .filter('intake=')
. 평등 필터를 사용하면 .filter('intake')
. 공간이 없으면 평등 표시가 필드 이름의 일부로 간주됩니다.
제휴하지 않습니다 StackOverflow