2012-08-01 53 views
-1

我只用django工作了6个月,而且我对登录过程的流程并不十分清楚。在django登录后检测浏览器类型

我有一个客户端,它具有由模板创建的自定义登录屏幕。它有一个带有提交按钮:

其网址中的文件,他们有:

(R '^账户/登录/ $',登录)

在他们的意见文件,他们称之为登录(请求)

他们想要的是,在用户成功登录之后,我需要检测他们正在使用哪个浏览器,并根据它是哪个浏览器,可能会弹出一个对话框。我无法弄清楚代码的存在位置。我并不是问如何检测浏览器类型,而是询问那些JavaScript代码会去的地方,以及如何在登录后让它被调用。

我可以在登录屏幕上检测浏览器类型并将其传递回服务器,但是如果需要弹出对话框,我将如何在登录后将控制权交还给浏览器?

回答

1

在您的登录视图中,使用request-object来获取浏览器类型。

您可以创建自己的login-view或操作(您不应该这样做 - 但它是可行的)django-default。

+0

我知道如何获取浏览器类型。但这是所有服务器端。我需要如何将控制权转移回浏览器来显示弹出窗口。 – 2012-08-01 15:18:26

+1

你可以添加一个var到你的回复中......类似于“popup”:1并在模板中检查它。如果已设置,您可以使用jQuery创建弹出窗口。 (只是快速和肮脏的风格) – Thomas 2012-08-01 15:20:24

+0

调用登录,它返回,我检查浏览器类型,看到我需要显示弹出窗口。这是我不知道下一步该做什么的地方。我不想破坏现有的流程 - 目前用户已经在应用程序中 - 在他们解开了它在同一点上需要的弹出窗口之后。 – 2012-08-01 15:25:44

0

您应该检查request.META ['HTTP_USER_AGENT']。您可以根据此字符串采取措施,但请注意可以更改浏览器信息。

可能编写自己的模板上下文处理器,它将填充所有模板并将class ='firefox-12'设置为body标签。

0

我想你要做的事情必须用Django和HTML来完成。您将自定义您的登录名,在那里选择浏览器类型,然后在模板内使用它,根据刚收集的结果显示所需的弹出窗口。 Django文档将帮助你使用模板代码,因为它有很多例子可以帮助你解决这个问题。它还有更多的例子展示了如何使Django与浏览器交互,但当然只限于HTML,CSS,Javascript,Jquery代码。