不同版本的Same Django App

时间:2012-03-19 13:46:30

标签: django facebook

这是一个设计问题。我的目标如下:

Django webapp对应一个网站。我希望该网站可以通过其官方域名访问,也可以从Facebook内部访问。

但是,如果用户在Facebook内,我希望应用程序使用不同的模板文件夹,其中包含所有模板的“精简”版本。

在第一次迭代中,我的团队通过URL完成了此操作: - url.com会将您带到使用普通模板呈现的页面 - url.com/?fbapp=true会将您带到使用lite模板

呈现的页面

现在,我的问题是,检测应用程序的最佳方法是在Facebook上运行以定​​义模板? - 像上面这样的URL参数是一种方式,在我看来是一种糟糕的方式; - 一些会话变量(但这可能很糟糕,因为一个人在Facebook和同一浏览器中的站点中导航应用程序将为两者获得相同的模板类型)

应该有一些东西可以让我区分一个人何时访问我的网站,url.com,以及他们何时通过Facebook应用程序访问它。

有人可以帮忙吗?

干杯

2 个答案:

答案 0 :(得分:2)

Facebook通过iframe包含您的网站,因此就您的网站而言,嵌入Facebook与直接访问之间没有区别。您已经完成的任务(附加查询字符串)与任何方法一样明智。

答案 1 :(得分:1)

有很多方法可以做到这一点,获取参数看起来不是最优雅但仍然有效(至于你记得保持它的位置)。

解决此问题的一种方法是在两个不同的根网址上运行应用,例如

/匹配'常规'应用

/ facebook /匹配具有FB模板的应用程序的根

然后你只需要为facebook app使用不同的设置文件,并设置类似

的内容
USE_LITE_TEMPLATES = True 

甚至可以更改模板的根路径并处理整个facebook的事情,而无需触摸视图中的一行代码:)