2012-03-12 136 views
0

我在使用"django-lazysignup 0.8"和Django 1.3。django-lazysignup allow_lazy_user装饰器调用两次包装视图?

当我这样做:

视图

@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调用了两次,并创建页面对象两次,并打印statment打印两次)

这里是输出屏幕:

输出:

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

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

如果你看的URL第二个请求:

/edit/images/favicon.ico 

这看起来对我来说,你的浏览器试图加载图标为您的网站。这表明你已经使用了相对路径images/favicon.ico而不是绝对路径/images/favicon.ico

它似乎并不完全正确的图标的网址已被称为page_edit视图。这表明你的url模式缺少一个$来表示字符串的结尾。您应该将其更改为:

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