【问题标题】:Is django-lazysignup allow_lazy_user decorator calling the wrapped view twice?django-lazysignup allow_lazy_user 装饰器是否两次调用包装视图?
【发布时间】:2014-01-27 03:43:19
【问题描述】:

我在 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 对象。有什么解决办法吗?

【问题讨论】:

    标签: django decorator lazy-registration


    【解决方案1】:

    我认为这与 Django-lazysignup 无关。

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

    /edit/images/favicon.ico
    

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 2015-09-06
      • 2010-10-16
      • 1970-01-01
      • 2018-10-18
      • 2014-06-07
      • 2016-08-14
      相关资源
      最近更新 更多