django-lazysignup allow_lazy_user装饰器是否两次调用包装视图?

时间:2012-03-12 14:17:15

标签: django decorator lazy-registration

我在Django 1.3上使用"django-lazysignup 0.8"

当我这样做时:

视图

@allow_lazy_user
def page_edit(request):
if request.method == 'GET':
    if is_lazy_user(request.user):
        b2 = Page.objects.create(user=request.user)
        print request.user.username
        return render_to_response('page_editor.html',{'page':b2})

控制台输出显示视图似乎被调用两次(b2调用两次并创建Page对象两次,打印状态打印两次)

这是输出屏幕:

输出:

7707089a583a424caf0face130cb20  # this is the reult of  print request.user.username 
[12/Mar/2012 15:02:45] "GET /edit/ HTTP/1.1" 200 8368
7707089a583a424caf0face130cb20
[12/Mar/2012 15:02:46] "GET /edit/images/favicon.ico HTTP/1.1" 200 8368

我不需要这样做,应该调用一次视图并创建一个Page对象。有什么解决方案吗?

1 个答案:

答案 0 :(得分:1)

我不认为这与Django-lazysignup有关。

如果您查看第二个请求的网址:

/edit/images/favicon.ico

在我看来,就像您的浏览器尝试为您的网站加载favicon一样。这表明您使用了相对路径images/favicon.ico而不是绝对路径/images/favicon.ico

favicon网址调用page_edit视图似乎不太正确。这表明您的网址格式缺少$来表示字符串的结尾。您应该将其更改为:

url('^edit/$', 'page_edit'),