سؤال

ومرحبا أنا باستخدام التصحيح جانغو التطبيق محرك لقد شكلت نموذج بسيط على النحو التالي

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'). دون الفضاء، ويتم أخذ علامة يساوي أن تكون جزء من اسم المجال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top