2016-03-19 15 views
2

我在python2.7上使用django-advanced-filters和django 1.8.0 django-advanced-filters == 1.0.1 django-braces == 1.4.0 Django的易於選擇2 == 1.2.5django-advanced-filters'grp_tags'不是一個有效的標籤庫

它工作正常,但是當我嘗試修改過濾器,它失敗: 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) 

錯誤堆棧跟蹤:

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 

如何解決這一問題?

回答

2

django-advanced-filters作者在這裏。你正在描述的問題已在即將發佈的1.0.2版本中解決(將於本週末發佈)。 這個問題的原因是我們過去依賴於django-grappelli,但已經轉移到更通用的方法。

如果你絕對不能等待釋放,可以安裝最新的開發分支directly from the github repo像這樣:

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

精彩。謝謝 – max

相關問題