如何在Django中通过url定义模板?

时间:2012-04-23 12:11:53

标签: django django-1.4

我想创建一个项目,每个用户都可以拥有自己的“主页”。所以我希望能够为每个用户设置一个模板并将其显示在他的主页url上。我只是将模板名称保存在用户配置文件中并将其传递给模板加载器,还是有更好/更安全/更可插入的方式来执行此操作?

2 个答案:

答案 0 :(得分:1)

在用户个人资料中保存模板名称很好。就像你说的,你可以把它传递给模板渲染方法。

但请注意一件事:用户不应该手动输入模板名称。我认为,出于安全原因,这应该是一个选择领域。请参阅https://docs.djangoproject.com/en/1.4/ref/models/fields/#choices的末尾,您可以将模板选项列表动态化。

答案 1 :(得分:1)

听起来你想让用户拿起他/她最喜欢的模板并设置好一串喜好,比如背景图片,显示样式等等?如果是这样,你的解决方案很好。实际上,您允许用户在提供的(和可扩展的)模板集中进行选择,而不是让他们完全控制模板的使用。
此外,对于仅用于每个用户的首选项设置。您可能希望将它们保存在序列化字段中,例如jsonfield或picklefield,而不是按列存储它们。我正在编写一个应用程序来简化这些字段的编辑。