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

Gan*_*ndi 2 forms django auto-populate

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

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

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

dot*_*tty 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>
Run Code Online (Sandbox Code Playgroud)

那么你需要提供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">
Run Code Online (Sandbox Code Playgroud)

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

编辑

如果要使用django执行此操作,请编辑模型并覆盖save方法.

def save(self):
    if not self.id:
        self.username = self.first + self.last
    super(MODLE_NAME, self).save()
Run Code Online (Sandbox Code Playgroud)

这样做的是当你使用save()方法时,它将获取它的第一个和最后一个属性并更新用户名值并保存它.