2010-12-27 27 views
7

tôi đã nhận lỗi này khi tôi cố gắng để chạy test này: được viết bằng tests.py của ứng dụng django tôi:TemplateSyntaxError: 'settings_tags' không phải là một thẻ thư viện hợp lệ

def test_accounts_register(self): 
    self.url = 'http://royalflag.com.pk/accounts/register/' 
    self.c = Client() 
    self.values = { 
     'email': '[email protected]', 
     'first_name': 'bilal', 
     'last_name': 'bash', 
     'password1': 'bilal', 
     'password2': 'bilal', 
    } 
    self.response = self.c.post(self.url, self.values) 

phiên bản django của tôi là 1.2.1 và python 2.6 và phiên bản Satchmo là 0.9.2-pre-hg biết

các bản ghi lỗi hoàn toàn là:

.E.... 
====================================================================== 
ERROR: test_accounts_register (administration.tests.AccountsRegisterTestCase) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "C:\pytho\satchmo\administration\tests.py", line 53, in test_accounts_reg 
ister 
    self.response = self.c.get(self.url) 
    File "C:\django\django\test\client.py", line 290, in get 
    response = self.request(**r) 
    File "C:\django\django\test\client.py", line 230, in request 
    response = self.handler(environ) 
    File "C:\django\django\test\client.py", line 74, in __call__ 
    response = self.get_response(request) 
    File "C:\django\django\core\handlers\base.py", line 141, in get_response 
    return self.handle_uncaught_exception(request, resolver, sys.exc_info()) 
    File "C:\django\django\core\handlers\base.py", line 180, in handle_uncaught_ex 
ception 
    return callback(request, **param_dict) 
    File "C:\django\django\views\defaults.py", line 23, in server_error 
    t = loader.get_template(template_name) # You need to create a 500.html templ 
ate. 
    File "C:\django\django\template\loader.py", line 157, in get_template 
    template, origin = find_template(template_name) 
    File "C:\django\django\template\loader.py", line 134, in find_template 
    source, display_name = loader(name, dirs) 
    File "C:\django\django\template\loader.py", line 42, in __call__ 
    return self.load_template(template_name, template_dirs) 
    File "C:\django\django\template\loader.py", line 48, in load_template 
    template = get_template_from_string(source, origin, template_name) 
    File "C:\django\django\template\loader.py", line 168, in get_template_from_str 
ing 
    return Template(source, origin, name) 
    File "C:\django\django\template\__init__.py", line 158, in __init__ 
    self.nodelist = compile_string(template_string, origin) 
    File "C:\django\django\template\__init__.py", line 186, in compile_string 
    return parser.parse() 
    File "C:\django\django\template\__init__.py", line 282, in parse 
    compiled_result = compile_func(self, token) 
    File "C:\django\django\template\defaulttags.py", line 921, in load 
    (taglib, e)) 
TemplateSyntaxError: 'settings_tags' is not a valid tag library: Template librar 
y settings_tags not found, tried django.templatetags.settings_tags,satchmo_store 
.shop.templatetags.settings_tags,django.contrib.admin.templatetags.settings_tags 
,django.contrib.comments.templatetags.settings_tags,django.contrib.humanize.temp 
latetags.settings_tags,livesettings.templatetags.settings_tags,sorl.thumbnail.te 
mplatetags.settings_tags,satchmo_store.contact.templatetags.settings_tags,tax.te 
mplatetags.settings_tags,pagination.templatetags.settings_tags,product.templatet 
ags.settings_tags,payment.templatetags.settings_tags,payment.modules.giftcertifi 
cate.templatetags.settings_tags,satchmo_utils.templatetags.settings_tags,app_plu 
gins.templatetags.settings_tags,tinymce.templatetags.settings_tags 

---------------------------------------------------------------------- 
Ran 6 tests in 47.468s 

FAILED (errors=1) 
Destroying test database 'default'... 

Trả lời

19

dường như với tôi bạn có thể có một mã như {% load settings_tags %} đâu đó trong bạn r mẫu. Django tìm kiếm templatetags/settings_tags.py tệp trong thư mục ứng dụng đã cài đặt của bạn. Đây là kết quả của việc không tìm thấy một tập tin như thế này. Có thể ứng dụng có chứa nó không nằm trong số INSTALLED_APPS hoặc có thể đó là lỗi đánh máy. Bạn sẽ nhận được cùng một lỗi khi bạn đặt url này trong trình duyệt của mình.

+0

cảm ơn sự trợ giúp của ure: tôi đặt settings_tag vào thư mục ứng dụng của tôi dưới thư mục có tên templatetags –

+61

Tôi không chắc đây có phải là hành vi bình thường hay không. – AJJ

+3

@AJweb Tôi cũng thế. Tôi khởi động lại máy chủ và nó bắt đầu hoạt động. –

15

Đôi khi điều này xảy ra khi bạn quên đặt __ init __.py vào gói.

+4

vâng! vừa mới xảy ra ở đây. – zVictor

+1

đẹp, tôi quá ngu ngốc> _ <' – maazza

+0

Tệp '__init __. Py' có bao gồm bất cứ điều gì cụ thể không, hoặc nó có trống không? – gtlambert

7

Giống như @AJJ nói, bạn có thể phải khởi động lại máy chủ để có được thẻ mới nạp

+0

Tải lại máy chủ là chìa khóa! – gtlambert

0

này là phổ biến một issue cho gói này. Khi bạn nhận được nó từ pypi, nó không chứa các mẫu thẻ: settings_tag.py và điều đó sẽ gây ra lỗi 'settings_tags' is not a valid tag library: Template library settings_tags not found.

Giải pháp hiện nay là để cài đặt nó từ zip github.

Các vấn đề liên quan