以自定义形式呈现模板中的各个字段

nlr*_*r25 13 django django-templates django-forms

我在模板中渲染单个字段时遇到问题.我有一个自定义表单,呈现多重小部件和Charfield.我想单独渲染小部件和Charfield,所以我可以将Charfield放在小部件的右边而不是底部(这是Django默认做的).有没有办法在模板中调用表单中的各个字段?

forms.py

class UpdateStateOptionWithOutcomesForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
       disease=kwargs.pop('disease', None)
       super(UpdateStateOptionWithOutcomesForm, self).__init__(*args, **kwargs)
       self.fields['relevantoutcome']=forms.ModelMultipleChoiceField(queryset=Outcome.objects.filter(relevantdisease_id=disease),required=True, widget=forms.CheckboxSelectMultiple)
       self.fields['relevantoutcome'].label="Treatment Outcomes"

       outcome_qs=Outcome.objects.filter(relevantdisease_id=disease)
       for outcome in outcome_qs:
       self.fields['outcomevalue_%s' % outcome.pk] = forms.CharField(required=False)
       self.fields['outcomevalue_%s' % outcome.pk].label = "Outcome Value"
Run Code Online (Sandbox Code Playgroud)

aug*_*men 22

{{ form.fieldname }} 将仅按名称呈现字段小部件.

请查看自定义表单模板.


cao*_*aot 5

以下代码可能对某人有帮助。fieldname这是一种从 a获取渲染字段的方法form

form.fields[fieldname].get_bound_field(form, fieldname)
Run Code Online (Sandbox Code Playgroud)