Django项目 - 添加新用户

时间:2017-01-13 14:09:27

标签: python django user-profile

我需要为我的Django项目添加一个新的用户配置文件,以便下周开始的新员工 - 我尝试通过www.mysite.co.uk/admin进行身份验证&授权 - >添加用户,我设置了用户名&密码,并给予用户配置文件管理员权限。它说用户已经成功创建,但当我试图通过运行以下命令来获取我刚刚在命令行中添加的用户配置文件时:

from employees import models

from employees.models import Employee

allEmps = Employee.objects.all()

newUser = allEmps.filter(first_name = "name")

newUser刚刚成为一个空数组,所以很明显用户还没有添加到数据库中...如果我运行相同的命令,但使用我的名字,而不是用户的名字我&#39 ;我刚尝试添加,newUser包含一个元素(我的用户帐户)的数组,然后我可以将其分配给变量以检查其属性等。

然后我尝试直接在命令行中创建一个新用户,所以运行:

newEmployee = Employee(first_name = "name", surname = "surname")

这似乎在本地创建了一个Employee对象

如何将新用户添加到我的Django项目/数据库?

我的用户数据库条目是Employee - 但是当我在employees.models班级查看Employee时,没有' add_employee'视图...

我应该跑吗

newEmployee = Employee(first_name = "name", surname = "surname")

从实时服务器上的shell?这是否可以通过Django管理页面访问新的员工用户配置文件,以便我可以设置他们的权限,电子邮件地址等?

1 个答案:

答案 0 :(得分:2)

此声明不会在数据库中创建员工:

newEmployee = Employee(first_name = "name", surname = "surname")

它只是创建一个员工对象。您可以通过以下方式将数据保存到数据库:

newEmployee = Employee(first_name = "name", surname = "surname")
newEmployee.save()

或者

newEmployee = Employee.objects.create(first_name = "name", surname = "surname")

修改

我太快而无法回答这个问题而忽略了其他部分。您不应该使用生产shell添加新员工,而是使用管理界面。 Django第一篇教程有足够的例子告诉你如何add a new model to admin,你应该一直阅读它以了解django的基础知识。它的标题是“编写你的第一个Django应用程序”。

<强>重新编辑:

Django doc也有一节讨论如何extend a User model。在本节的最后,它表明:

  

这些配置文件模型在任何方面都不是特别的 - 它们只是Django   恰好与用户模型具有一对一链接的模型。如   这样,它们不是在创建用户时自动创建的,而是a   django.db.models.signals.post_save可用于创建或更新   相关模型酌情。

因此,我们不会自动创建您的Employee模型,只需查看文档并使用post_save方法。