如何解决变量的意外输出?

时间:2015-06-22 06:48:38

标签: django python-2.7

我在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,
)

1 个答案:

答案 0 :(得分:4)

删除第一行代码中的逗号,将其转换为元组

 optional_message = form.cleaned_data['optional_message'],

应该是

 optional_message = form.cleaned_data['optional_message']