2012-02-10 81 views
0

我想要使用django表单,并且我有兴趣用“空白标签”来销售表单。django表单空白标签

喜欢的东西:

class SearchForm(forms.Form): 
    q = forms.CharField(required=True,widget=forms.TextInput(attrs {'id':'field','name':'field'}),label="Search") 

,然后我渲染使用

{{form.as_p}} 

不过,我有这个恼人的“搜索:”在我的HTML表单上显示我的HTML,我不想。我试过用:

q = forms.CharField(required=True,widget=forms.TextInput(attrs {'id':'field','name':'field'})) 

但是这输出“Q:”,我猜是默认的标签。我如何告诉django我不需要提供标签?

非常感谢。

+0

好的我找到了答案。最好在html 字段中直接传递名称“q”作为名称。 – JohnJ 2012-02-10 03:45:40

+1

您也可以按字段渲染表单,忽略标签标签。 – szaman 2012-02-10 06:23:43

+0

你是什么意思szaman?例如,我使用了:。更好的是使用django特定的代码:类似{{form.q}}而不是name =“q”,我想知道这是否可能。我试过{{form.q}},{{form.data.q}}等,但没有一个可以工作。 – JohnJ 2012-02-10 11:25:26

回答

1

看看这个例子,应该明确如何使用它:https://docs.djangoproject.com/en/dev/topics/forms/#customizing-the-form-template

确定{{form.q}}不起作用?

+0

Szaman ..是啊,我看过文档。出于某种原因{{form.q}}不起作用。值得一提的是,这种形式实际上是在干草堆里。所以,当我称之为“q”似乎工作,但{{form.q}}不起作用。奇怪。 – JohnJ 2012-02-11 15:32:13

+0

Szaman,实际上{{form.q}}现在可以工作。我不得不重新加载所有模块。但是,例如,我不喜欢{{form.q}}输入框的样式,并有我自己的输入框,如下所示: 。在这里,我使用名称= q,并且一切按预期工作。如果我使用name =“{{forms.q}}”,它就会起作用。在这种情况下使用name = q是否正常?谢谢。 – JohnJ 2012-02-11 17:07:53

+0

你和这个由django使用form.q呈现的手动输入标签有什么区别?您可以根据需要调整每个表单域,而不必手动输入输入标记。 – szaman 2012-02-12 07:06:07

0

你可能只是做:

class SearchForm(forms.Form): 
    q = forms.CharField(required=True,widget=forms.TextInput(attrs {'id':'field','name':'field'}),label="") 

这将刚刚设置的标签为空字符串。