django-advanced-filters 'grp_tags' is not a valid tag library

627 Views Asked by At

I'm using django-advanced-filters with django 1.8 on python2.7 django-advanced-filters==1.0.1 django-braces==1.4.0 django-easy-select2==1.2.5

It works fine, but when I try to modify a filter, it fails: models.py:

from django.db import models
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _

class SalesRep(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    email = models.EmailField(_('email address'), blank=True)
    duty = models.CharField(max_length=30, blank=True)
    def __unicode__(self):
        return '{} {}'.format(self.first_name, self.last_name)


class Client(models.Model):
    VALID_LANGUAGES = (
        ('en', 'English'),
        ('sp', 'Spanish'),
        ('it', 'Italian'),
    )
    USERNAME_FIELD = 'email'

    language = models.CharField(max_length=8, choices=VALID_LANGUAGES, default='en')
    email = models.EmailField(_('email address'), blank=True)
    first_name = models.CharField(_('first name'), max_length=30, blank=True)
    last_name = models.CharField(_('last name'), max_length=30, blank=True)
    is_active = models.BooleanField(
        _('active'), default=True,
        help_text=_('Designates whether this user should be treated as '
                    'active. Unselect this instead of deleting accounts.'))
    assigned_to = models.ForeignKey(SalesRep)
    date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
    def __unicode__(self):
        return '{} {}'.format(self.first_name, self.last_name)

admin.py:

from django.contrib import admin
from advanced_filters.admin import AdminAdvancedFiltersMixin
from .models import *

@admin.register(Client)
class ClientAdmin(AdminAdvancedFiltersMixin, admin.ModelAdmin):
    list_filter = ('first_name', 'last_name', 'language', 'is_active')
    advanced_filter_fields = ('language', 'first_name',
                              ('assigned_to__email', 'Sales Rep.'))

admin.site.register(SalesRep)

error stack trace:

C:\Python27\lib\site-packages\advanced_filters\forms.py:266: RemovedInDjango19Warning: django.db.models.get_model is deprecated.
  self._model = get_model(*instance.model.split('.'))

C:\Python27\lib\site-packages\django\db\models\__init__.py:55: RemovedInDjango19Warning: The utilities in django.db.models.loading are deprecated in favor of the new application loading system.
  from . import loading

(None, <myapp.admin.ClientAdmin object at 0x00000000037AC710>, ('language', 'first_name', ('assigned_to__email', 'SalesRep.')))
Internal Server Error: /admin/advanced_filters/advancedfilter/1/
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\django\core\handlers\base.py", line 164, in get_response
    response = response.render()
  File "C:\Python27\lib\site-packages\django\template\response.py", line 158, in render
    self.content = self.rendered_content
  File "C:\Python27\lib\site-packages\django\template\response.py", line 133, in rendered_content
    template = self._resolve_template(self.template_name)
  File "C:\Python27\lib\site-packages\django\template\response.py", line 88, in _resolve_template
    new_template = self.resolve_template(template)
  File "C:\Python27\lib\site-packages\django\template\response.py", line 78, in resolve_template
    return loader.select_template(template, using=self.using)
  File "C:\Python27\lib\site-packages\django\template\loader.py", line 64, in select_template
    return engine.get_template(template_name, dirs)
  File "C:\Python27\lib\site-packages\django\template\backends\django.py", line 30, in get_template
    return Template(self.engine.get_template(template_name, dirs))
  File "C:\Python27\lib\site-packages\django\template\engine.py", line 167, in get_template
    template, origin = self.find_template(template_name, dirs)
  File "C:\Python27\lib\site-packages\django\template\engine.py", line 141, in find_template
    source, display_name = loader(name, dirs)
  File "C:\Python27\lib\site-packages\django\template\loaders\base.py", line 13, in __call__
    return self.load_template(template_name, template_dirs)
  File "C:\Python27\lib\site-packages\django\template\loaders\base.py", line 23, in load_template
    template = Template(source, origin, template_name, self.engine)
  File "C:\Python27\lib\site-packages\django\template\base.py", line 190, in __init__
    self.nodelist = engine.compile_string(template_string, origin)
  File "C:\Python27\lib\site-packages\django\template\engine.py", line 261, in compile_string
    return parser.parse()
  File "C:\Python27\lib\site-packages\django\template\base.py", line 341, in parse
    compiled_result = compile_func(self, token)
  File "C:\Python27\lib\site-packages\django\template\loader_tags.py", line 210, in do_extends
    nodelist = parser.parse()
  File "C:\Python27\lib\site-packages\django\template\base.py", line 341, in parse
    compiled_result = compile_func(self, token)
  File "C:\Python27\lib\site-packages\django\template\defaulttags.py", line 1159, in load
    (taglib, e))
TemplateSyntaxError: 'grp_tags' is not a valid tag library: Template library grp_tags not found, tried django.templatetags.grp_tags,django.contrib.admin.templatetags.grp_tags,django.contrib.staticfiles.templatetags.grp_tags

How to fix this?

1

There are 1 best solutions below

0
On BEST ANSWER

django-advanced-filters author here. The issue you're describing was fixed in upcoming release 1.0.2 (due to be released this weekend). The reason for this issue is that we used to depend on django-grappelli but have moved to a more generic approach.

If you absolutely cannot wait for the release, you may install the latest development branch directly from the github repo like so:

pip install https://github.com/modlinltd/django-advanced-filters/archive/develop.zip