我们正在寻找一种解决方案,将 CSS 类属性添加到 Django 表单的<input..>
场地。我们已经看到建议我们将字段包装在<div>
http://docs.djangoproject.com/en/1.2/topics/forms/#customizing-the-form-template http://docs.djangoproject.com/en/1.2/topics/forms/#customizing-the-form-template,但这个建议似乎主要适用于字段标签,而不是它的<input ...>
.
如果您尝试在周围创建边框,则此特定建议不起作用<input>
场地。在这种情况下,<div>
将应用于边界框,而不是实际的输入字段。例如.wrapper { border: 1px solid #666;line-height:22px;height:22px;padding:3px 5px;width:205px;}
将在字段周围创建一个框,而不是替换默认值<input ...>
border.
我们已经退回到通过应用于 Form 类的小部件来应用该类,但这缺乏一定程度的代码优雅性(并且违反了 DRY)。例如,这解决了需求。
class ContactUsForm(forms.Form):
name = forms.CharField(widget=forms.TextInput(attrs={'class':'form_text'}))
当然,这将 Form 与 CSS 紧密地联系在一起。如果您尝试将类属性应用于<input ..>
字段(如果表单基于很酷的新 forms.ModelForm 系统)。
我们花了两天的时间来研究这个问题(并研究了 Django 源代码),看起来我们可能已经在这个特定问题上达到了 Django 的最边缘——但我们只是想通过一次在 StackOverflow 上看看其他人是否有见解。
感谢您的任何见解。
最后一条评论:如果问题出在我们对 CSS(而不是 django)的理解上,请随时向我们指出这一点。我们花了相当多的时间搞乱 CSS 选项,但它们似乎都无法让我们实现所需的效果——即替换默认值<input...>
border.
您可以像这样使用子选择器:
.fieldWrapper > input {border: 1px solid #666;line-height:22px;height:22px;padding:3px 5px;width:205px;}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)