0

私は、別のウィジェットをレンダリングするときに Django ウィジェットの html ID を知る必要があるいくつかのプロジェクトに取り組んできましたが、これまでのところ、それを実行する適切な方法が見つかりませんでした。多くの使用例を次に示します。

フィールド A とフィールド B の両方が同じ django フォームにあるとします。ここで、フィールド A がユーザー名を受け取り、フィールド B がフィールド A の値を受け取り、その値を使用して ajax 呼び出しを行うオートコンプリート テキスト フィールドであるとします。オートコンプリートのロジックは、フィールド B のウィジェットの render メソッドにありますが、フィールド B のウィジェットからフィールド A のウィジェットにアクセスすることはできません$("#field_a_id").val()。これまでのところ、これを行う唯一の方法は次のとおりです

class DjangoForm(forms.ModelForm):

    field_a = forms.CharField()
    field_b = forms.CharField()

    class Meta:
        model = SomeModel   

    def __init__(self, *args, **kwargs):
        super(DjangoForm, self).__init__(*args, **kwargs)
        # HACK !!!
        field_a_id = self['field_a'].id_for_label
        self.fields['field_b'].widget.attrs.update({'field_a_id': field_a_id})

そうすることでjQueryを使って簡単にidを取得できるのですが、ちょっとハックな感じがします。だから私の質問は、これを行うためのより良い方法はありますか?

フィードバックをお待ちしております。ありがとう。

4

0 に答える 0