Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django应用程序中的TemplateSyntaxError_Python_Django_Django Models_Facebook_Django Templates - Fatal编程技术网

Python Django应用程序中的TemplateSyntaxError

Python Django应用程序中的TemplateSyntaxError,python,django,django-models,facebook,django-templates,Python,Django,Django Models,Facebook,Django Templates,您好,我正在尝试使用Ajax使用django facebook connect为我的django应用程序实现facebook登录。我是按照这个链接来实现它的。在这样做时,我遇到了这个错误“TemplateSyntaxErrorat/registrationForm”/ “facebookconnect”不是有效的标记库:未找到模板库facebookconnect,已尝试django.templatetags.facebookconnect,django.contrib.admin.templat

您好,我正在尝试使用Ajax使用django facebook connect为我的django应用程序实现facebook登录。我是按照这个链接来实现它的。在这样做时,我遇到了这个错误“TemplateSyntaxErrorat/registrationForm”/

“facebookconnect”不是有效的标记库:未找到模板库facebookconnect,已尝试django.templatetags.facebookconnect,django.contrib.admin.templatetags.facebookconnect,facebookconnect.templatetags.facebookconnect”。我将在这里粘贴我的错误日志。环境:

Request Method: GET
Request URL: http://10.1.0.90:8080/registrationForm/
Django Version: 1.2.5
Python Version: 2.6.5
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'universityDetails',
 'django.contrib.admin',
 'captcha',
 'facebookconnect',
 'social_auth']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.middleware.csrf.CsrfResponseMiddleware',
 'universityDB.FacebookConnectMiddleware.FacebookConnectMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'facebook.djangofb.FacebookMiddleware',
 'facebookconnect.middleware.FacebookConnectMiddleware')


Template error:
In template /home/ravi/Desktop/universityDB/templates/registrationForm.html, error at line 75
   'facebookconnect' is not a valid tag library: Template library facebookconnect not found, tried django.templatetags.facebookconnect,django.contrib.admin.templatetags.facebookconnect,facebookconnect.templatetags.facebookconnect
   65 :   <p style="clear:both;float:left;">


   66 :     <input type="submit" value="Log in" />


   67 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;


   68 :     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a HREF="http://10.1.0.90:8080/forgotPassword/">Forgotten your password?</a></p>


   69 :   </div>


   70 : </form>


   71 : <br>


   72 : 


   73 : <p>Login via facebook!</p>


   74 : 


   75 :  {% load facebookconnect %} 


   76 : {% facebook_connect_login_button %}


   77 : 


   78 : {% facebook_connect_script %}


   79 : 


   80 : 


   81 : 


   82 : <br>


   83 : <br>


   84 : <br>


   85 : <br>


Traceback:
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response
  100.                     response = callback(request, *callback_args, **callback_kwargs)
File "/home/ravi/Desktop/universityDB/../universityDB/universityDetails/views.py" in registrationForm
  50.     return render_to_response("registrationForm.html")
File "/usr/local/lib/python2.6/dist-packages/django/shortcuts/__init__.py" in render_to_response
  20.     return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/template/loader.py" in render_to_string
  181.         t = get_template(template_name)
File "/usr/local/lib/python2.6/dist-packages/django/template/loader.py" in get_template
  157.     template, origin = find_template(template_name)
File "/usr/local/lib/python2.6/dist-packages/django/template/loader.py" in find_template
  134.             source, display_name = loader(name, dirs)
File "/usr/local/lib/python2.6/dist-packages/django/template/loader.py" in __call__
  42.         return self.load_template(template_name, template_dirs)
File "/usr/local/lib/python2.6/dist-packages/django/template/loader.py" in load_template
  48.             template = get_template_from_string(source, origin, template_name)
File "/usr/local/lib/python2.6/dist-packages/django/template/loader.py" in get_template_from_string
  168.     return Template(source, origin, name)
File "/usr/local/lib/python2.6/dist-packages/django/template/__init__.py" in __init__
  158.         self.nodelist = compile_string(template_string, origin)
File "/usr/local/lib/python2.6/dist-packages/django/template/__init__.py" in compile_string
  186.     return parser.parse()
File "/usr/local/lib/python2.6/dist-packages/django/template/__init__.py" in parse
  282.                     compiled_result = compile_func(self, token)
File "/usr/local/lib/python2.6/dist-packages/django/template/defaulttags.py" in load
  928.                                       (taglib, e))

Exception Type: TemplateSyntaxError at /registrationForm/
Exception Value: 'facebookconnect' is not a valid tag library: Template library facebookconnect not found, tried django.templatetags.facebookconnect,django.contrib.admin.templatetags.facebookconnect,facebookconnect.templatetags.facebookconnect
我的facebookconnect.py是

from django import template
from django.conf import settings
from django.core.urlresolvers import reverse

register = template.Library()

class FacebookScriptNode(template.Node):
        def render(self, context):
            return """
            <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script>

            <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

            <script type="text/javascript"> FB.init("%s", "%s");
                function facebook_onlogin() {
                    var uid = FB.Facebook.apiClient.get_session().uid;
                    var session_key = FB.Facebook.apiClient.get_session().session_key;
                    var expires = FB.Facebook.apiClient.get_session().expires;
                    var secret = FB.Facebook.apiClient.get_session().secret;
                    var sig = FB.Facebook.apiClient.get_session().sig;

                    fb_connect_ajax(expires, session_key, secret, uid, sig);

                }

                function fb_connect_ajax(expires, session_key, ss, user, sig) {

                    var post_string = 'expires=' + expires;
                    post_string = post_string + '&session_key=' + session_key;
                    post_string = post_string + '&ss=' + ss;
                    post_string = post_string + '&user=' + user;
                    post_string = post_string + '&sig=' + sig;

                    $.ajax({
                        type: "POST",
                        url: "%s",
                        data: post_string,
                        success: function(msg) {
                            window.location = '%s'; //.reload()
                        }
                    });
                } 
            </script>       
            """ % (settings.FACEBOOK_API_KEY, reverse('xd_receiver'), reverse('facebook_connect_ajax'), settings.LOGIN_REDIRECT_URL)


def facebook_connect_script(parser, token): return FacebookScriptNode()

register.tag(facebook_connect_script)

class FacebookLoginNode(template.Node):
    def render(self, context): 
        return "<fb:login-button onlogin='facebook_onlogin();'></fb:login-button>"

def facebook_connect_login_button(parser, token): return FacebookLoginNode()

register.tag(facebook_connect_login_button)
来自django导入模板的

从django.conf导入设置
从django.core.urlResolver反向导入
register=template.Library()
类FacebookScriptNode(template.Node):
def呈现(自身、上下文):
返回“”
FB.init(“%s”,“%s”);
函数facebook_onlogin(){
var uid=FB.Facebook.apiClient.get_session().uid;
var session_key=FB.Facebook.apiClient.get_session().session_key;
var expires=FB.Facebook.apiClient.get_session().expires;
var secret=FB.Facebook.apiClient.get_session().secret;
var sig=FB.Facebook.apiClient.get_session().sig;
fb_connect_ajax(过期、会话密钥、机密、uid、sig);
}
函数fb\u connect\u ajax(过期、会话密钥、ss、用户、sig){
var post_string='expires='+expires;
post_字符串=post_字符串+'&会话_键='+会话_键;
post_string=post_string+'&ss='+ss;
post_string=post_string+'&user='+user;
post_string=post_string+'&sig='+sig;
$.ajax({
类型:“POST”,
url:“%s”,
数据:post_字符串,
成功:功能(msg){
window.location='%s';//.reload()
}
});
} 
“%”(settings.FACEBOOK\u API\u键、reverse('xd\u receiver')、reverse('FACEBOOK\u connect\u ajax')、settings.LOGIN\u REDIRECT\u URL)
def facebook_connect_脚本(解析器、令牌):返回facebook脚本节点()
register.tag(facebook\u connect\u脚本)
类FacebookLoginNode(template.Node):
def呈现(自身、上下文):
返回“”
def facebook_connect_login_按钮(解析器,令牌):返回facebook登录节点()
register.tag(facebook连接登录按钮)

您的
facebook connect.py
文件必须位于
模板标签
包中(它必须有一个
\uuuu init\uuuuuuuuuuuuuu.py
才能成为包)


在您的
设置.INSTALLED_APPS
设置中,您添加了
facebookconnect
,即使这不是一个应用(按目录结构)。相反,您应该将
universityDB.universityDetails
列为应用程序。

facebookConnect.py
还是
facebookConnect.py
?是facebookConnect.pywat应该是init.py文件的内容?facebookconnect.py在我的templatetags folderi中添加了universityDB.universityDetails到我安装的应用程序中,并在templatetags中添加了和init.py文件。现在我收到了这个错误“AlreadyRegistered at/registrationForm/The model University Details已经注册”听起来像是您以两种不同的方式导入
models.py
,一种是老式的,另一种是绝对的。如果您通过绝对路径导入模块(例如,
import universityDB.universityDetails.models
),然后通过旧样式导入模块(例如,在
universityDB/universityDetails/views.py
中,您可以
导入模型
),那么模块实际上将导入两次!别这样!我现在更改了..但仍有相同的旧错误..“facebookconnect”不是有效的标记库:未找到模板库facebookconnect,已尝试django.templatetags.facebookconnect,django.contrib.admin.templatetags.facebookconnect,facebookconnect.templatetags.facebookconnect”确保模块中没有语法错误或类似问题。打开shell
python manage.py shell
并导入您的模块:
import universityDB.universityDetails.templatetags.facebookconnect
from django import template
from django.conf import settings
from django.core.urlresolvers import reverse

register = template.Library()

class FacebookScriptNode(template.Node):
        def render(self, context):
            return """
            <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script>

            <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

            <script type="text/javascript"> FB.init("%s", "%s");
                function facebook_onlogin() {
                    var uid = FB.Facebook.apiClient.get_session().uid;
                    var session_key = FB.Facebook.apiClient.get_session().session_key;
                    var expires = FB.Facebook.apiClient.get_session().expires;
                    var secret = FB.Facebook.apiClient.get_session().secret;
                    var sig = FB.Facebook.apiClient.get_session().sig;

                    fb_connect_ajax(expires, session_key, secret, uid, sig);

                }

                function fb_connect_ajax(expires, session_key, ss, user, sig) {

                    var post_string = 'expires=' + expires;
                    post_string = post_string + '&session_key=' + session_key;
                    post_string = post_string + '&ss=' + ss;
                    post_string = post_string + '&user=' + user;
                    post_string = post_string + '&sig=' + sig;

                    $.ajax({
                        type: "POST",
                        url: "%s",
                        data: post_string,
                        success: function(msg) {
                            window.location = '%s'; //.reload()
                        }
                    });
                } 
            </script>       
            """ % (settings.FACEBOOK_API_KEY, reverse('xd_receiver'), reverse('facebook_connect_ajax'), settings.LOGIN_REDIRECT_URL)


def facebook_connect_script(parser, token): return FacebookScriptNode()

register.tag(facebook_connect_script)

class FacebookLoginNode(template.Node):
    def render(self, context): 
        return "<fb:login-button onlogin='facebook_onlogin();'></fb:login-button>"

def facebook_connect_login_button(parser, token): return FacebookLoginNode()

register.tag(facebook_connect_login_button)