使用自定义表单参数格式化模板

时间:2013-08-29 00:52:39

标签: django django-templates

我有一个自定义表单,其中包含我想在模板中设置格式的多个字段。有没有办法将结果值字段与相关结果选择权的右侧对齐?

如果没有办法,那么有没有办法命名resultvalue_%s字段,以便它们链接到相关的结果选项?例如,如果relatedoutcome = Time,则resultvalue_%s的标签=时间值

forms.py

   self.fields['relevantoutcome']=forms.ModelMultipleChoiceField(queryset=Outcome.objects.all(),required=True, widget=forms.CheckboxSelectMultiple)
   self.fields['relevantoutcome'].label="Outcomes"

   outcome_qs=Outcome.objects.all()
   for outcome in outcome_qs:
       self.fields['outcomevalue_%s' % outcome.pk] = forms.CharField(required=False)
       self.fields['outcomevalue_%s' % outcome.pk].label = "Outcome Value"

template.html

   {{form.as_table}} 

1 个答案:

答案 0 :(得分:0)

最好的方法是为您的表单编写自己的模板标签。

template.html

{% load yourapp_tags %}

{{ form|as_table }}

yourapp_tags.py

from django import template

register = template.Library()

@register.filter
def as_table(value):
    #do the formatting
    return value

有关如何使用自己的模板标签的文档,请查看here