我一直在做一些项目,这些项目要求我在呈现另一个widget时知道Django小部件的htmlid,但是到目前为止,我还没有找到一种合理的方法来实现这一点。以下是许多用例:
假设字段A和字段B都是相同的django形式。
现在假设字段A接受用户名,字段B是一个自动完成文本字段,它接受字段A的值并使用所述值进行ajax调用。自动完成的逻辑是在fieldb的widget的render方法中,但是我不能从fieldb的widget访问fielda的widget,我需要访问来获取fielda的widget html id并使用jquery(如so $("#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,但感觉有点老套。 所以我的问题是,有没有更好的方法?在
欢迎任何反馈。谢谢。在
目前没有回答
相关问题 更多 >
编程相关推荐