Django-almacenado-QUERYSET

Picklable Django QuerySet
Descargar ahora

Django-almacenado-QUERYSET Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • GPL v3
  • Precio:
  • FREE
  • Nombre del editor:
  • Denis Mishchishin
  • Sitio web del editor:
  • http://github.com/denz/

Django-almacenado-QUERYSET Etiquetas


Django-almacenado-QUERYSET Descripción

Django-almacenado-QUERSET es una representación persistente de Django QuerySet`.Quick Creación de funcionalidad de búsqueda simple sin calificadoras de SQL o IDS / índices / IDS / índices de almacenamiento. Ejemplos enviantales de almacenamiento. Quesset importación FilterquerySetSET = FilterQuerySet ('Q (Text__IContains = "SOMETEXT ") ',' SomeApp.Somemodel ') Q.Objects.All () #OPUTS ALLOADS (DUless (Q)). Objects.all () #Same RESULTADOS RESIPRADO CON LITERALES # Defina predeterminado Literalsq0 = FilterQuerySet (' Q (Text__Icontontains =" {literal_text} ") ',' SomeApp.Somemodel ', literal_parameter ='" sometext "') # nuevo QuerySet con diferente' literal_text` valueq1 = q0.literal (literal_text = '" some_other_text "'). Objects.all () # Los literales están analizados con seguros 'ast.literal_eval' y pueden tomarse de la entrada de usuario # Q1 se pueden grabar y, por lo tanto, la búsqueda de usuarios se puede almacenar en DB # si para mantener diferente "FilterquerySet` para cada usuario. Carga (DUless (Q1)) .Objects.Al () #Same Resultedment Complex - Búsqueda específica del usuario con campos relacionados y parámetros persistentesModels.py :from Django.db Imp Ort ModelSfrom Django.contrib.Auth.models Importar usuariode almacenado.QuerySet Importar FilterQuerySetClass CatelsassModel (Models.model): usuario = modelos.foreignkey (usuario, en blanco = true, null = true) #or tal vez mtm calificación = modelos.integerfield () Clase Somemodel (modelos.model): texto = modelos.charfield () relacionado_field = models.foreignkey (relacionado) Views.py:Search_Query = 'Q (text__icontains = "{búsqueda}") \ q (relacionado_field__in = relacionado.filter (Rating__GTE = {min_reled_rating})) 'default_search_queryset = \ filterqueryset (consulta,' SomeApp.Somemodel ', Min_Reled_Rating =' 3 ') Def Vista (Solicitud): Si no SOLICITE.USER.IS_ANTONYOUS (): PERFIL = Solicitud.user.get_profile ( ) Query = Carga (Perfil.Search) \ Siff.search \ más default_search_queryset) # Query.Objects.All () planteará una excepción - # Tenemos que definir la variable "relacionada con la variable y` buscar "relacionado con el mundo relacionado ..bjects .filter (q (usuario = request.user.user) | q (user__in = ))) def store_search (consulta): Perfil.search = vertederos (consulta) Perfil.save () otra cosa: consulta = defa ult_search_queryset relacionado = relacionadomodel.objects.filter (q (user__in = ))) def store_search (consulta): pase #define evaluado variables real_query = consulta (relacionada = relacionada) #ALERT: Nunca pase la entrada del usuario como variables evaluadas #Utiliza literales para eso si Solicite.Request.get ('Buscar', Ninguno): #Bonus: Previus Search almacenada también actual_query.literals (Buscar = Solicitud.Request ) Si Solicite.Request.get ('Min_rating ', Ninguna): #verride Min_Rating Si es necesario reales_query.literales (Min_Reled_Rating = int (Solicitar.Request )) #NAW podemos almacenarlo junto con la última cadena de búsqueda y `Min_Reled_Rating` Store_Search (actual_query) #Notice . `Relacionado 'y cualquier variable evaluada no se almacenarán #Si la próxima vez que tengamos que llamar a la consulta con" relacionada ". Devuelve Render_to_Response ('Search.html', {'Artículos': actual_query.Objects}) Página de inicio del producto


Django-almacenado-QUERYSET Software relacionado