Django:可自定义的模板

时间:2012-09-24 15:57:46

标签: django templates user-profile

我正在创建一个门户网站,我希望为用户提供更改配置文件/仪表板的功能,例如更改后台。等等 有人可以指导我一个有效的方法来实现这一目标吗? 感谢

1 个答案:

答案 0 :(得分:2)

这与css和javascript有关,而不是与django模板有关。

这里唯一与django相关的是实际存储这些偏好。

e.g。实际背景图像的文件路径。

之后,您将执行类似于此答案中描述的内容:

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 %}