Pregunta

Hola, estoy usando el parche del motor de la aplicación django. He configurado un modelo simple de la siguiente manera

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

estoy usando las siguientes vistas para verificar si existe algo en la base de datos y agregar a la base de datos

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

puedo agregar a la base de datos sin problemas (cuando hago un Intake.all (). count () aumenta) pero cuando verifico si la clave existe en la base de datos al filtrar soy obtener un conteo de cero alguien tiene alguna idea de por qué no puedo filtrar por claves?

¿Fue útil?

Solución

Debe insertar un espacio entre el nombre del campo y el operador en sus argumentos de filtro. Por ejemplo, use .filter ('input =') en lugar de .filter ('input = ') . Con un filtro de igualdad, también puede omitirlo por completo, como en .filter ('input') . Sin el espacio, el signo igual se toma como parte del nombre del campo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top