Django-armazenado-Queryset

Queryset Django Picklable
Baixe Agora

Django-armazenado-Queryset Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • GPL v3
  • Preço:
  • FREE
  • Nome do editor:
  • Denis Mishchishin
  • Site do editor:
  • http://github.com/denz/

Django-armazenado-Queryset Tag


Django-armazenado-Queryset Descrição

Django-armazenado-Queryset é uma representação persistente da criação de Django Queryset da funcionalidade de pesquisa simples sem sql ou marcadores implícitos / IDs / índices de armazenamento.examplestrivelFrom Stored.Queryset Import FilterQuerySetQ = FilterQuerySet ('Q (Text__icontains = "SomeText ") ',' SOMEAPP.SOMEDEL ') q.objects.all () #Outputs Allloads (despejos (q)). Objects.all () #same resultsimple com literais # Define literalsq0 = filterqueryset (' q (text__icontains =" {literal_text} ") ',' SOMEAPP.SOMEMODEL ', literal_parameter ='" algumext "') # novo Queryset com diferente` literal_text` valueq1 = q0.literal (literal_text =' "some_other_text" ''). Objects.all () #) Literais são analisados com 'AST.LITERAL_EVAL' SEGURO e podem ser retirados da entrada do usuário # Q1 podem ser conservados e, portanto, a pesquisa do usuário pode ser armazenada no DB # se para manter diferente `FilterQueryset` para cada usuário.loads (q1)) .Objects.all () #Same ResultSmore complexo - Pesquisa específica do usuário com campos relacionados e parâmetros persistentesModels.py: From Django.db Imp ORT MODELSFROM DJANGO.CONTRIB.AutH.Models ImportArt.ModelsSet Import FilterQuerySetClass RelacionadoModel (Models.Model): User = Models.ForeignKey (User, Blank = True, Null = True) #OR Talvez MTM Avaliação = Models.integerfield () Classe Somemodel (modelos.model): text = models.charfield () relacionado_field = modelos.foreignkey (relacionadoModel) Visualizações.Search_Query = 'q (text__icontains = "{Search}") \ \ (relacionado_field__in = relacionado.filter (rating__gte = {min_related_rating})) 'Default_Search_QuerySet = \ FilterQueryset (consulta,' somapp.somemodel ', min_related_rating =' 3 ') Def Visualizar (solicitação): se não solicitar.user.is_anonymous (): Perfil = request.user.get_profile Query = cargas (perfil.search) \ se perfil.search \ else Default_search_Queryset) # query.objects.all () vai levantar uma exceção - # nós temos que definir 'Related' variável e `busca 'literal relacionado = relacionadomodel.objects .filter (q (user = request.user) | q (user__in = )) def store_search (consulta): perfil.search = dumps (consulta) perfil.save () else: consulta = defa ULT_Search_Queryset = relacionadomodel.objects.filter (q (user__in = )) def store_search (consulta): pass #define avaliou variáveis real_query = consulta (relacionado = relacionado) #Alert: nunca passe entrada do usuário como variáveis avaliadas #Use literals para que, se request.request.get ('Search', nenhum): #Bonus: Pesquisa Avius armazenada também real_query.literais (Pesquisa = solicitação.request ) se request.request.get ('min_rating ', Nenhum): #Override min_rating Se necessário real_query.literals (min_related_rating = int (request.request )) # agora podemos armazená-lo junto com a última string de pesquisa e `min_related_rating` parâmetro parâmetro store_search (real_query) #notice . "Relacionado" e quaisquer variáveis avaliadas não serão armazenadas # assim da próxima vez que tivermos que chamar a consulta com "relacionado" novamente. retorno render_to_response ('search.html', {'itens': real_query.objects}) página inicial do produto


Django-armazenado-Queryset Software Relacionado