Domanda

ciao sto usando la patch del motore dell'app django, ho impostato un modello semplice come segue

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']

Sto utilizzando le seguenti visualizzazioni per verificare se esiste qualcosa nel database e aggiungerlo al database

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')

posso aggiungere al database senza problemi (quando faccio un Intake.all (). count () aumenta) ma quando controllo se la chiave esiste nel database filtrando sono ottenere un conteggio di zero qualcuno ha idea del perché non sono in grado di filtrare per chiavi?

È stato utile?

Soluzione

È necessario inserire uno spazio tra il nome del campo e l'operatore negli argomenti del filtro, ad esempio utilizzare .filter ('take = ') anziché .filter (' assunzione = ') . Con un filtro per l'uguaglianza, puoi anche lasciarlo completamente fuori, come in .filter ('aspirazione') . Senza lo spazio, il segno di uguale è considerato parte del nome del campo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top