Django - 如何从其他两个字段自动填充表单字段

时间:2011-06-10 09:14:15

标签: django forms auto-populate

这就是我要找的东西。在我的表格中,我有三个字段,都是CharFields。这些是姓名,姓氏和用户名。用户名应设置为Name和Surname的总和,因此对于Name = Joe,Surname = Black,Username = Joe Black。

显示表单时,所有字段都为空。我想在将数据写入Name或Surname时自动填充用户名。这样做的原因是我不必填写用户名字段,但是当我想要时,我可以设置它与Name + Surname不同。

不使用jQuery是否可行?如果是的话,有没有这方面的好教程?

1 个答案:

答案 0 :(得分:6)

的javascript

<script type="text/javascript" charset="utf-8">

    function updateUsername(){
        first = document.getElementById("first").value;
        last = document.getElementById("last").value;
        document.getElementById("username").value = first+" "+last;
    }

</script>

然后你需要提供3个输入字段ID。

这是一个例子

<input type="text" name="some_name" value="" id="first" onkeyup="updateUsername();">
<input type="text" name="some_name" value="" id="last" onkeyup="updateUsername();">
<input type="text" name="some_name" value="" id="username">

基本上当输入#first和#last字段时,运行updateUsername()函数,该函数获取它们的值并将#username的值更改为它们。

修改

如果您想使用django执行此操作,请编辑模型并覆盖保存方法。

def save(self):
    if not self.id:
        self.username = self.first + self.last
    super(MODLE_NAME, self).save()

当您使用save()方法时,它会执行以下操作:它会使用它的第一个和最后一个属性并更新用户名值并保存它。