私は Web ポータルの作成に取り組んでおり、背景の変更などのプロファイル/ダッシュボードを変更する機能をユーザーに提供したいと考えています。など。これを達成するための効率的なアプローチを教えてください。ありがとう
1 に答える
2
これは、django テンプレートよりも css と javascript に関係のあるトリッキーです。
ここで django に関連する唯一のことは、これらの設定の実際の保存です。
たとえば、実際の背景画像のファイルパス。
その後、この回答で説明されていることと同様のことを行います。
編集
ユーザーごとに異なるディレクトリが必要な理由がわかりません。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 に答える