2010-10-30 34 views
6

Vì vậy, tôi đã đập đầu vào tường. Tôi cảm thấy như tôi đã giải thích các tài liệu và ví dụ tôi tìm thấy, nhưng điều này dường như không biến mất.Vấn đề thẻ django mẫu tùy chỉnh trên AppEngine

Đây là mã thẻ:

from google.appengine.ext import webapp 

register = webapp.template.create_template_register() 

def test_tag(): 
    return "TEST!" 

register.simple_tag(test_tag) 

Đây là mã chính:

from google.appengine.ext import webapp 
from google.appengine.ext.webapp import util, template 

webapp.template.register_template_library('my_tags') 

class MainHandler(webapp.RequestHandler): 
    def get(self): 
     self.response.out.write(template.render("test.html", {})) 

def main(): 
    application = webapp.WSGIApplication([('/', MainHandler)], debug=True) 
    util.run_wsgi_app(application) 

if __name__ == '__main__': 
    main() 

Dưới đây là các mẫu:

{% load my_tags %} 
<html>{% test_tag %}></html> 

Dưới đây là lỗi:

File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django/django/template/defaulttags.py", line 750, in load 
    raise TemplateSyntaxError, "'%s' is not a valid tag library: %s" % (taglib, e) 
TemplateSyntaxError: 'my_tags' is not a valid tag library: Could not load template library from django.templatetags.my_tags, No module named my_tags 

Tôi thực sự ghét phải ra ngoài yêu cầu ai đó sửa mã của tôi, nhưng tôi dường như không thể hiểu tại sao điều này không hiệu quả. Bất kỳ gợi ý hay con trỏ nào sẽ được đánh giá cao.

jc

Trả lời

4

Vì vậy, nó chỉ ra rằng khi bạn sử dụng các phương pháp tôi đã sử dụng để đăng ký các thẻ tùy chỉnh, bạn không cần phải sử dụng câu lệnh tải ở phía trên cùng của ví dụ mẫu của tôi.

2

Đối với một lời giải thích cũng bằng văn bản về vấn đề này thấy http://www.hipatic.com/2012/11/appengine-python-27-django-custom.html

Trái tim của vấn đề ở đây là có hai Djangos trong Google App Engine:

  1. nội Django ("webapp Django" AppEngines nếu bạn thích)
  2. Thư viện Django ("thường xuyên" Django)

bài viết này cung cấp 2 ví dụ mà làm rõ việc sử dụng mỗi ngày e. Nó cũng đi về cách một số tài liệu sẵn có dẫn đến nghiền hai phương pháp, có vẻ như được trình bày trong câu hỏi, trong đó {% load my_tags %} (cần thiết cho Thư viện Django) được sử dụng với WebApp Django. lỗi TemplateSyntaxError: 'my_tags' is not a valid tag library.

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