web-dev-qa-db-ja.com

テンプレート内の個々のフィールドをカスタムフォームでレンダリングする

テンプレートの個々のフィールドのレンダリングに問題があります。多肢選択ウィジェットと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"
13
nlr25

{{ form.fieldname }}は、フィールドウィジェットのみをその名前でレンダリングします。

チェックアウト フォームテンプレートのカスタマイズ

22
augustomen

次のコードは誰かに役立つかもしれません。 fieldnameからformを使用してレンダリングフィールドを取得する方法を次に示します。

form.fields[fieldname].get_bound_field(form, fieldname)
2
caot