3

私は Web ポータルの作成に取り組んでおり、背景の変更などのプロファイル/ダッシュボードを変更する機能をユーザーに提供したいと考えています。など。これを達成するための効率的なアプローチを教えてください。ありがとう

4

1 に答える 1

2

これは、django テンプレートよりも css と javascript に関係のあるトリッキーです。

ここで django に関連する唯一のことは、これらの設定の実際の保存です。

たとえば、実際の背景画像のファイルパス。

その後、この回答で説明されていることと同様のことを行います。

HTMLの背景を動的に変更する方法

編集

ユーザーごとに異なるディレクトリが必要な理由がわかりません。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 %}
于 2012-09-24T16:09:51.547 に答える