django 1.3:
我的ModelForm中有一个排除的字段,在使用.as_table(),as_p()方法等构建表单时仍然显示
我在模板文件和shell中尝试过,排除字段显示在exclude变量中,但它似乎没有影响。
型号:
class UserTrans(models.Model):
usertransid = models.AutoField(primary_key=True)
userid = models.ForeignKey(User, db_column='userid')
transdate = models.DateField(verbose_name="Date")
data = models.DecimalField(max_digits=15, decimal_places=2)
class Meta:
db_table = u'usertrans'
class TransForm(ModelForm):
class Meta:
model=UserTrans
exclude = ('userid',)
当我打开shell并尝试:
x=TransForm()
x.as_table()
或在模板中
{{ form.as_table }} or
{{ form.as_p }}
它显示userid字段以及其余字段。
如果我尝试x.exclude
它会显示('userid',)
,所以我知道语法是正确的。
有什么想法吗?
答案 0 :(得分:0)
我很确定你的代码中没有显示其他内容。但是,有一个黑客。为您的模型表单添加__init__
,在其中从表单的fields
属性(这是一个字典)中删除“userid”。