我在django 1.3中使用"django-lazysnup 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 lazysnup有关。
如果您查看第二个请求的url:
/edit/images/favicon.ico
在我看来,这就像你的浏览器试图加载你网站的收藏夹。这表明您使用了相对路径images/favicon.ico
而不是绝对路径/images/favicon.ico
。
favicon url调用page_edit
视图似乎不太正确。这表明您的url模式缺少一个$
来表示字符串的末尾。你应该把它改成这样的东西:
url('^edit/$', 'page_edit'),