2012-05-17 134 views
0

我想將佈局模型添加到我的網站(一般設置文件),並且我希望它可以在管理界面中進行配置。Django - 單一模型實例

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

此結構不應保存在表中。

我想知道是否有一個內置的功能,可以幫助我做到這一點。

感謝


我的使用情況是一個網站的配置佈局。 WordPress的風格。我想將這些數據存儲在具體的類中,而不必自己實現文件/ xml序列化。

+0

爲什麼它需要成爲一個模型,如果它沒有保存在表中? –

+0

@ IgnacioVazquez-Abrams:我也很想聽聽OP的更具體的用例。 – jdi

+0

@jdi:我添加了我的用例。 – Amirshk

回答

1

抽象模型呢?它不保存在數據庫中,並且是要被分類的,但是你可以創建它的實例並使用它的屬性。我假設你想要某種臨時數據結構傳遞,以滿足模型實例的要求。

class Layout(models.Model): 

    class Meta: 
     abstract = True 

如果你因爲某些原因需要實際的具體模型,並與它的罰款對他們創建表,你可以在技術上也重新實現了save()方法,使之無操作。

我真的不明白你會在哪裏以及如何使用它,但這確實是一個不保存的模型。

就個人而言,我實際上使用了不想保存的模型,在使用mongodb和nonrel django fork的項目中。我創建的模型純粹是作爲嵌套的子文檔嵌入到其他模型中的,我從不希望它們致力於單獨的集合。

更新
這裏是另外一個建議,可能會使事情一大堆更容易爲你的目標。爲什麼不使用正常的django模型,像正常一樣將其保存到數據庫中,並創建一個簡單的導入/導出函數將其保存到XML或從XML讀入實例。這樣,您可以獲得100%的正常管理功能,您仍然可以查詢數據庫中的值,而XML部分只是一個簡單的附加組件。您也可以使用它來對偏好設置進行修改並將某個標記標記爲活動標記。