I think to escape a % use %% On Sun, Dec 2, 2012 at 1:16 PM, Martin Svoboda <martin.svob...@gmail.com>wrote:
> Hi, > I want use postgresql pg_trgm module in django. pg_trgm defines special > operator percent sign. How should I escape it in django query extra method? > > # Pure SQL > SELECT content, similarity(content, 'text') AS sml > FROM table > WHERE content % 'text' > ORDER BY sml DESC, content; > > # Extra throws IndexError 'tuple index out of range' > # I tried escape % with %%, or \%, but it throws same exception > objects = MyModel.objects.extra( > select={'rank': 'similarity(content, %s)'}, > select_params=[content], > where='content % %s', > params=[content], > order_by=['-rank'] > ) > > # Raw query works fine > objects = MyModel.objects.raw('''SELECT *, similarity(content, %s) AS rank > FROM table WHERE content %% %s ORDER BY rank DESC LIMIT 1''', [content, > content]) > > How should I escape persent sign in extra() method? > > Thank you! > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/django-users/-/2euBM5lHjZEJ. > To post to this group, send email to django-users@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.