23 Mar, 14

Sorting on chardfields in Haystack and Elasticsearch

Current version on Haystack (2.10) combined with Elasticsearch produces weird results when you want to sort search results on charfield, the issue has been reported here https://github.com/toastdriven/django-haystack/issues/866 and here: https://github.com/toastdriven/django-haystack/issues/569 Long story short, to fix the problem ...

Read now
23 Mar, 14

Pass request object to the form: CBV and Form Mixins

If you want to access data from request object in your model form these two mixins will help you to do it easily: 1) You'll need a View mixin like this:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  1. class RequestFormKwargsMixin(object):
  2. """
  3. CBV mixin which puts ...
Read now
18 Mar, 14

Replacing Menu Item Visibility module with custom "in code" solution

I'm a big fan of fighting with Drupal's inefficiencies and bottlenecks. Most of these come from contrib modules. Everytime we install a contrib module we should be ready for surprises which come on board with the module.

One of the latest examples is Menu item visibility (https://drupal.org/project ...

Read now
06 Mar, 14

Haystack Search Pager

To make haystack search pager place nicelly with other get parameters, we can do something like this: 1) Create a templatetag:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  1. @register.simple_tag
  2. def get_search_pager_link(request):
  3. params = []
  4. link = '?'
  5. for key, value in request.GET.items():
  6. if key ...
Read now
28 Feb, 14

Django Messages and Bootstrap 3

To make Django messages look nice in your bootstrap 3 template you need two things:

1. Create a custom template tag to define css name for a message:

1
2
3
  1. @register.assignment_tag
  2. def get_bootstrap_alert_msg_css_name(tags):
  3. return 'danger' if tags == 'error' else tags

2. Add this snippet to your base ...

Read now
26 Feb, 14

Fixing Views' Scroll to Top When You Have a Fixed Header

Drupal Views offers us a cool feature: ajaxified pagers. When you click on a pager, it changes the page without reloading the main page itself and then scrolls to the top of the view. It works great, but sometimes you may encounter a problem: if you have a fixed header ...

Read now
12 Feb, 14

Serve static and media files by Django while in Debug mode

Media and static files won't be served in devel mode untill you put this at the end of the main urls.py file:

1
2
3
4
5
  1. if settings.DEBUG:
  2. urlpatterns += patterns('',
  3. (r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
  4. (r'^static/(?P.*)$', 'django ...
Read now
12 Feb, 14

Start Django Project With Two Scoops of Django Template

Run this line in order to start Django project by using Two Scoops of Django Project Template:

1
  1. django-admin.py startproject --template=https://github.com/twoscoops/django-twoscoops-project/zipball/master --extension=py,rst,html PROJECT_NAME
Read now
11 Feb, 14

Russian Slugs for Django Taggit

It appears that Django Taggit doesn't support transliteratable tags, what we need to do is to add such support, how you may ask? We should use proxy models. Just add this piece of code to, let's say, ru_taggit.py file:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10 ...
Read now
06 Feb, 14

Sorl-Thumbnail returns error: "SuspiciousOperation: Attempted access to '/media/products/505.jpg' denied"

When Solr Thumbnail (https://github.com/mariocesar/sorl-thumbnail) returns and error like "SuspiciousOperation: Attempted access to '/media/products/505.jpg' denied" or Bad request: 400 you need to check the path of the image you want to resize: it shouldn't start with your MEDIA_ROOT like  '/media/products/505 ...

Read now