【发布时间】:2012-09-24 15:57:45
【问题描述】:
我正在创建一个门户网站,我想为用户提供更改配置文件/仪表板的功能,例如更改背景。等等 有人可以指导我采用一种有效的方法来实现这一目标吗? 谢谢
【问题讨论】:
标签: django templates user-profile
我正在创建一个门户网站,我想为用户提供更改配置文件/仪表板的功能,例如更改背景。等等 有人可以指导我采用一种有效的方法来实现这一目标吗? 谢谢
【问题讨论】:
标签: django templates user-profile
这是与 css 和 javascript 相关的技巧,而不是 django 模板。
这里唯一与 django 相关的是这些首选项的实际存储。
例如实际背景图像的文件路径。
之后,您将执行类似于此答案中描述的操作:
how to change html background dynamically
编辑
我不明白为什么每个用户都需要不同的目录。 Django 模板 给你足够的力量去做你想做的事。
例如,假设每个用户都可以上传自己的背景图片。还 我假设您遵循这个流行的 django 模式来存储附加信息 关于您的用户。 https://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
所以我们有这个UserProfile 模型:
class UserProfile(models.Model):
CHOICES = (
('vertical', 'Vertical'),
('horizontal', 'Horizontal'),
)
user = models.OneToOneField(User)
background_image = models.ImageField(upload_to='images')
dashboard_layout = models.CharField(max_length=10, choices=CHOICES)
您可以将这些额外信息传递给您的 javascript 上下文(使用或不使用 Ajax) 然后为每个用户更改背景图片。
我们也可以像这样在模板级别进行特殊布局:
{% extends "base.html" %}
{% block main_body %}
{% if request.user.get_profile.dashboard_layout == 'vertical' %}
{% include "layouts/vertical.html" %}
{% else %}
{% include "layouts/horizontal.html" %}
{% endif %}
{% endblock main_body %}
【讨论】: