我正在考虑为我的<input>元素的占位符属性使用字段标签的干式方法。我使用的是django-crispy-forms。
现在我有:
class FilterForm(Form):
query = CharField(max_length=50, label='', required=False)
def __init__(self, data=None, files=None, **kwargs):
self.helper = FormHelper()
self.helper.layout = Layout(
Field('query', placeholder='Search ...'),
)
super(FilterForm, self).__init__(data, files, **kwargs)然而,我不希望必须单独设置标签和占位符,因为这个for最终会有更多的字段,而且它相当冗长。
你有什么建议?
发布于 2014-05-31 23:30:09
使用以下__init__方法可以实现干式解决方案:
def __init__(self,*args,**kwargs):(FilterForm,self).__init__(*args,**kwargs) helper = self.helper = FormHelper() #将字段标签移入占位符layout = helper.layout = field_name,self.fields.items()中的字段: layout.append( field (field_name,placeholder=field.label)) helper.form_show_labels = False
发布于 2014-04-22 20:46:11
目前可以通过下面的bootstrap helper attribute实现标签的隐藏:
self.helper.form_show_labels = False
默认设置为True。它决定是否呈现表单的字段标签。
您仍然需要使用Field layout对象定义占位符:
查询字段(‘
’,placeholder='Search ...'),
发布于 2013-06-17 19:44:11
试试这个:
class FilterForm(Form):
query = CharField(max_length=50, label='', required=False)
def __init__(self, data=None, files=None, **kwargs):
self.helper = FormHelper()
self.helper.layout = Layout(
Field('query', placeholder=kwargs.pop('query_placeholder', 'random text')),
)
super(FilterForm, self).__init__(data, files, **kwargs)https://stackoverflow.com/questions/13482753
复制相似问题