字段标签酥脆形式 Django
Posted
技术标签:
【中文标题】字段标签酥脆形式 Django【英文标题】:Field labels crispy forms Django 【发布时间】:2013-04-23 01:56:33 【问题描述】:我想对两个表单使用相同的模型并更改字段的标签如何更改标签?
这是我的一种形式:
class jobpostForm(forms.ModelForm):
class Meta:
model = jobpost
fields = ('job_type','title','company_name','location','country','description','start_date','end_date','how_to_apply')
widgets =
'job_type':Radioselect(),
'location':TextInput(attrs='size':'70','cols': 10, 'rows': 20),
'description': TinyMCE(attrs='cols':'100', 'row': '80'),
'start_date':AdminDateWidget(attrs='readonly':'readonly'),
'end_date':AdminDateWidget(attrs='readonly':'readonly'),
'how_to_apply':RadioSelect(),
def __init__(self, *args, **kwargs):
super(jobpostForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_class = 'horizontal-form'
self.helper.form_id = 'id-jobpostform'
self.helper.form_class = 'blueForms'
self.helper.form_method = 'post'
self.helper.form_action = '/portal/next/post/'
self.helper.add_input(Submit(_('submit_addcontent'), 'Preview'))
super(jobpostForm, self).__init__(*args, **kwargs)
就像我想将“位置”更改为“工作位置”..我该怎么做?
【问题讨论】:
【参考方案1】:有一种更简单的方法可以做到这一点。请参阅下面的示例:
class CreateAPIKey(forms.ModelForm):
class Meta:
model = APIKey
fields = ["client_id"]
labels =
"client_id": "Nome da Key",
help_texts =
"client_id": _(
"Um identificador exclusivo de formato livre da chave. 50 caracteres no máximo"
),
widgets =
"client_id": forms.TextInput(
attrs=
"id": "key_id",
"required": True,
"placeholder": "Entre um nome único para a chave",
"label": "dasdasdsdasd",
),
然后,然后在模板上渲染表单:
<form class="" method="POST" action="#">
% csrf_token %
<div class="col-md-4 col-sm-12 form-group" data-children-count="1">
% for field in form %
field|as_crispy_field
% endfor %
</div>
</form>
结果:
【讨论】:
【参考方案2】:这个问题并不是 Django Crispy Forms 所特有的。
一种选择是在JobPostForm
的init()
方法中设置标签。
def __init__(self, *args, **kwargs):
super(JobPostForm, self).__init__(*args, **kwargs)
self.fields['location'].label = "Job Location"
Overloading Django Form Fields 是处理此类问题时的好读物。
【讨论】:
我正在这样做,但它没有改变标签 如何在模板中显示表单(字段)? 像 % crispy form % 一样显示整个表单 对于未来的读者:我遇到了同样的问题,我解决了它,确保self.fields['location'].label = "Job Location"
被设置之后 super(JobPostForm, self).__init__(*args, **kwargs)
。 @arie 的回答对我有用。以上是关于字段标签酥脆形式 Django的主要内容,如果未能解决你的问题,请参考以下文章