Django显示名称而不是对象

时间:2017-03-19 23:44:04

标签: python django

我有输入数组

df.groupByKey(p => (p.gender, p.age))
  .agg(typed.avg[Person](_.salary).as("average_salary").as[Double])
  .select($"key._1",$"key._2",$"average_salary").show

我想向他们展示

class ChooseColumnsForm(forms.Form):
    choices = (
        (1, ("")),
        (2, ("sn")),
        (3, ("cn")),
        (4, ("password")),
        (5, ("uid")),
        (4, ("mail"))
    )
    columns = []
    def set_columns(self, col):
        for i in range(0,col):
            self.columns.append(forms.ChoiceField(self.choices))

但我没有输入,而是获得了输入的名称。

Output

我想得到什么

Result

我知道我可以像thiu一样输入相同的输入:

{% for choice in columns %}
    <td>{{ choice }}</td>
{% endfor %}

form_col.lol在forms.py中是ChoiceField,但是我无法做出所有选择:

{% for choice in form_col.columns %}
    <td>{{ form_col.lol }}</td>
{% endfor %}

此节目仅在最后一个ChoiceField中选择。

1 个答案:

答案 0 :(得分:0)

是的,我想我找到了它。

首先在form.py中我删除了变量列。我不得不在form.Form中添加新的表单到wchich是一个数组。我还必须创建自己的render(?)函数as_row:

class ChooseColumnsForm(forms.Form):
    choices = (
        (1, ("")),
        (2, ("sn")),
        (3, ("cn")),
        (4, ("password")),
        (5, ("uid")),
        (4, ("mail"))
    )
    def set_columns(self, col):
        for i in range(0,col):
            self.fields['column'+str(i)] = forms.ChoiceField(self.choices)
    def as_row(self):
        return self._html_output(
            normal_row='<td>%(errors)s%(field)s%(help_text)s</td>',
            error_row='<td colspan="2">%s</td>',
            row_ender='</td>',
            help_text_html='<br /><span class="helptext">%s</span>',
            errors_on_separate_row=False)

在views.py中,我发送此内容

form_col = ChooseColumnsForm()
form_col.set_columns(length)
return render(request, 'django_ldap/add_students.html', {'form': form, 'form_col': form_col.as_row(), 'file2': file2})

在html中只是

<thead>
    {{ form_col }}
</thead>