0

Webサイト(一般設定ファイル)にレイアウトモデルを追加し、管理インターフェイスで構成できるようにしたい。

class Layout(...Model):
    primary_header
    logo_image
    ...

この構造はテーブルに保存しないでください。

これを行うのに役立つ組み込み機能があるかどうか疑問に思っています。

ありがとう


私のユースケースは、Webサイトの構成可能なレイアウトです。ワードプレススタイル。ファイル/xmlのシリアル化を自分で実装せずに、そのデータを具象クラスに格納したいと思います。

4

1 に答える 1

1

抽象モデルはどうですか?これはデータベースに保存されず、サブクラス化されることを意図していますが、そのインスタンスを作成してその属性を使用することは許可されています。モデル インスタンスの要件を満たす、ある種の一時的なデータ構造を渡す必要があると思います。

class Layout(models.Model):

    class Meta:
        abstract = True

何らかの理由で実際の具体的なモデルが必要であり、それらのテーブルを作成しても問題ない場合は、技術的に save() メソッドを再実装してノーオペレーションにすることもできます。

これをどこでどのように使用するのかはよくわかりませんが、これは確かに保存されないモデルです。

個人的には、mongodb と nonrel django fork を使用するプロジェクトで、保存することを意図していないモデルを実際に使用したことがあります。ネストされたサブドキュメントとして他のモデルに純粋に埋め込むことを意図したモデルを作成し、それらを別のコレクションにコミットしたくありません。

更新
これは、目標を達成するのをずっと簡単にするかもしれない別の提案です。通常のdjangoモデルを使用して、通常のようにデータベースに保存し、単純なインポート/エクスポート関数を作成して、XMLに保存したり、XMLからインスタンスに読み取ったりしないでください。そうすれば、通常の管理機能を 100% 利用でき、データベースに値をクエリすることもできます。XML 部分は単純なアドオンにすぎません。これを使用して、設定をバージョンアップし、特定の設定をアクティブとしてマークすることもできます。

于 2012-05-17T23:43:56.433 に答える