نموذج محرك التطبيق تصفية مع جانغو
-
05-07-2019 - |
سؤال
ومرحبا أنا باستخدام التصحيح جانغو التطبيق محرك لقد شكلت نموذج بسيط على النحو التالي
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')
. دون الفضاء، ويتم أخذ علامة يساوي أن تكون جزء من اسم المجال.