2012-10-23 18 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