我有People
个应用。我的Person
模型具有username
字段。当我添加一个人并且该人还没有帐户时,我点击username
字段旁边的小加号,我会看到一个新用户表单。
没关系。
现在我想以这种方式创建用户:用户名应该是{firstname}.{lastname}[.{serial}]
形式,John Smith将拥有用户名john.smith
而另一个John Smith将是john.smith.1
。
如何将名字和姓氏传递给新用户表单?另外:如何检查是否有其他用户使用该用户名并将序列号附加到其中?
谢谢
答案 0 :(得分:0)
如果在个人表单上输入(但尚未提交)名字和姓氏,并且您希望这些值显示在新用户表单视图中,那么您必须:
a)当用户点击添加按钮(“加号按钮”)时,使用JavaScript获取名字和姓氏,然后
b)将这些值传递给custom view,动态创建{firstname}。{lastname}。[serial],然后
c)将该值分配给form.fields ['username']。initial
当用户看到下一个表单时,它们将具有您预先填充的输入值。这个逻辑可能应该采用自定义表单方法(无论哪种形式管理用户名)。
此策略会提出您必须解决的其他问题:
1)如果用户在提交之前更改原始人员表单中的名字和姓氏怎么办? (下面的#2可以解决这个问题)
2)每次更改名字或姓氏时,您都必须更新其他模型上的用户名
需要考虑的其他事项:
您可以使用自定义用户模型(docs,tutorial)执行此操作,并将这些名字和姓氏放在同一模型中,这样可以消除自定义视图创建,允许您创建用户名在一个页面中动态显示,并使其更容易同步。