2012-10-23 44 views
1

我有一個抽象模型NamedEntry。它有一個字段body_raw,其中包含用戶輸入的文本。 body字段包含body_raw字段的轉換(從markdown到html)緩存。Django,定義隱藏在每個表格中的字段

body字段應默認隱藏無處不在,在任何形式它可能會使用。有沒有像body = models.TextField(blank=True, hidden=True)

回答

2

你可以寫你自己的領域,這將屬性hidden插件使用,例如:

class HiddenTextField(models.TextField): 
    def formfield(self, **kwargs): 
     defaults = {'widget': widgets.Textarea({'hidden': ''})} 
     defaults.update(kwargs) 
     return super(HiddenTextField, self).formfield(**defaults) 

而只需更換TextFieldHiddenTextField在你的模型(一個或多個)

+0

我看你做了什麼,有..漂亮的xD猜測我只是沒有經驗來找到這樣的解決方案。 :) –

+0

PS:它沒有按照你發佈的方式工作,對我來說。但是改爲使用'kwargs.update(默認)'做到了! :) –

+1

@NiklasR,它應該和'defaults.update(kwargs)'有相同的效果,因爲kwargs是空的。但是,如果有人將數據傳遞給'formfield'(例如通過調用或在派生類中重載此函數),則此信息將丟失。這就是爲什麼我寫'defaults.update(kwargs)',但我不知道,爲什麼它不適合你。 – soon