Django 项目 - 添加新用户

Django project- adding a new user

我需要为下周开始工作的新员工在我的 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 只是变成了一个空数组,所以很明显用户还没有被添加到数据库中......如果我 运行 同样的命令,但是使用我的名字,而不是名字在我刚刚尝试添加的用户中,newUser 包含一个元素(我的用户帐户)的数组,然后我可以将其分配给一个变量以检查其属性等。

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

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

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

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

我的用户数据库条目是 Employee- 但是当我在 employees.modelsEmployee class 中查看时,没有 'add_employee' 视图。 ..

我应该运行

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

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

此语句不会在数据库中创建员工:

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

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

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 的基础知识。它的标题 "Writing your first Django app" 是有原因的。

重新编辑:

Django 文档也有部分讨论如何 extend a User model。在该部分的末尾,它建议:

These profile models are not special in any way - they are just Django models that happen to have a one-to-one link with a user model. As such, they aren’t auto created when a user is created, but a django.db.models.signals.post_save could be used to create or update related models as appropriate.

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