5

私はdjangoを初めて使用しますが、かなり基本的な質問だと思います。

私がこのテーマを持っているとしましょう:

ここに画像の説明を入力してください

私はすでにプロジェクトを作成したので、動的コンテンツのモデルを構築し、それらをビューや管理パネルなどに渡す方法について少し知っていますが、次のようになります。

質問:上の画像で、テキストを含む3つのコンテナにマークを付けました。ウェブサイト全体でこのテキストのインスタンスは1つだけであり、繰り返すことはできません。自分で開発した場合はハードコーディングするだけですが、管理パネルを使用してこれらのフィールドを編集できる必要があるクライアント用に開発した場合はどうなりますか?

Webサイト全体のこれらの種類のコンテナー用に複数(たとえば20)のフィールドを含む別のクラスを作成し、そのクラスをビューに渡して(およびでフィルター処理して[:1])テンプレートで使用することになっていますか?

それが私が思いついた唯一のことです。それはうまくいくでしょうが、それはひどい解決策だと思います。

4

2 に答える 2

4

私が行うことは、TextField挿入する宣伝文とCharFieldそれを識別するためのaと、渡した引数によってデータベースから宣伝文を読み取るカスタムテンプレートタグを含むモデルを作成することです。

class Blurb(models.Model):
  ident = models.CharField(..., db_index=True)
  blurb = models.TextField(...)

PK  ident  text
1   main   Hey! Do you like this template? This...

{% load blurb %}
 ...
{% blurb main %}
于 2012-09-24T00:49:32.533 に答える
2

モデル内のテキストの記述子を含む選択フィールドを持つ1つのモデルを持つことができます。

何かのようなもの:

class SomeText(models.Model):
    position = models.CharField(max_length=120, choices=POSITION_DESCRIPTORS)
    text = models.TextField()
于 2012-09-24T00:51:29.530 に答える