我有一个内联表单集,只有三个字段:
class Estimate_Product_Details(models.Model):
proposalID = models.ForeignKey(Estimate_Construction, verbose_name='Proposal ID')
CID = models.ForeignKey(Product, verbose_name = 'CID')
qty = models.DecimalField(max_digits = 7, decimal_places = 2, verbose_name = 'Quantity')
def __unicode__(self):
return u'%s -- %s' % (self.proposalID, self.CID)
然后我从该模型创建一个表单:
class Product_Form(ModelForm):
class Meta:
model = Estimate_Product_Details
fields = ('CID', 'qty')
widgets = {
'qty' : forms.TextInput(attrs={'size':30})
}
我的目标是拥有qty
输入字段非常小(我有 30 个用于测试)。但是,当我通过内联表单集呈现此表单时,根本没有设置该属性。在我看来,这是表单集的创建:
pFormSet = inlineformset_factory(Estimate_Construction, Estimate_Product_Details, form = Product_Form)
我哪里错了?为什么不qty
字段大小变化?
编辑:它可能应该只为输入字段设置一个类,并让 CSS 分配宽度。这样您就可以将其传递给不同的客户端的单独模板等。
也许而不是使用.attrs['size'] = 30
use .attrs['class'] = 'some_class'
然后在 HTML 模板中定义该类并处理其中的不同尺寸。
这应该有效:
class Product_Form(ModelForm):
def __init__(self, *args, **kwargs):
super(Product_Form, self).__init__(*args, **kwargs)
self.fields['qty'].widget.attrs['size'] = 30
class Meta:
model = Estimate_Product_Details
fields = ('CID', 'qty')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)