我在django中有一个名为optional_message
的变量。如果我调试变量然后它显示Swenskt
但是当我尝试在我的页面上打印变量时,会出现以下内容:(u'Swenskt',)
并且无法测试变量的长度等。我该怎么办?如果我只希望变量为Swenskt
而不是(u'Swenskt',)
,该怎么做?当我的另一个变量不是时,为什么它是一个元组?
后端代码是:
optional_message = form.cleaned_data['optional_message'],
optional_message_en = form.cleaned_data['optional_message_en']
if tutoring_language == 'en' and optional_message == '':
optional_message=optional_message_en
if tutoring_language == 'sv' and optional_message_en == '':
optional_message_en=optional_message
return render(request, "survey/confirm_survey.html", {
"context": course.context,
"tutoring_language": tutoring_language,
"trans_lang": trans_lang,
"start_date": _short_date_format(form.cleaned_data['start_date']) + ' ' + form.cleaned_data[
'start_date'].strftime("%Y"),
"end_date": _short_date_format(form.cleaned_data['end_date']) + ' ' + form.cleaned_data['end_date'].strftime(
"%Y"),
"email": request.user.email,
"form": form,
"admin_roles": _get_admin_roles(request, course.context),
"process_id": process_id,
"enable_progress_bar": str(settings.ENABLE_PROGRESS_BAR).lower(),
"extra_questions": form.cleaned_data['extra_questions'],
"optional_message": optional_message,
"optional_message_en": optional_message_en,
"template": template,
'subgroups': subgroup_dicts
})
我的django模板代码是
{% if optional_message|length > 1 %}
<li>
{% trans "Svenska" %}:
</li>
<li>
{{ optional_message }}
</li>
<br/>
{% endif %}
以下代码修复了它,但为什么呢?当另一个变量不是时,为什么变量是一个元组?
{% if optional_message %}
<li>
{% trans "Svenska" %}:
</li>
<li>
{{ optional_message.0 }}
</li>
<br/>
{% endif %}
表单代码为:
optional_message = forms.CharField(
widget=forms.Textarea(attrs={'rows':4, 'cols':15}),
label=_(u'Valfritt meddelande till studenter:'),
required=False,
)
答案 0 :(得分:4)
删除第一行代码中的逗号,将其转换为元组
optional_message = form.cleaned_data['optional_message'],
应该是
optional_message = form.cleaned_data['optional_message']