如何在 Django 中从 auth_user table 访问自定义列?

How to Access the custom column from auth_user table in Django?

我可以访问预定义列

(id, password, last_login,is_superuser, username, first_name, 
       last_name, email, is_staff, is_active, date_joined )

auth_user table .

之后,我在 auth_user table 中添加了新列 img_url

但是来自相同的代码 request.user.img_url 它没有访问 img_url 列的值。

如何访问 img_url 列?

谢谢。

这里有两个选择:

  1. 您可以扩展现有的用户模型
  2. 或者您可以实施客户用户模型

对于第一个选项(扩展你现有的模型)你可以这样做:

from django.contrib.auth.models import User

class NewUserModel(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    new_field_name = models.CharField(max_length=100)

然后像这样使用它:

u = User.objects.get(username='fsmith')
freds_department = u.employee.department

对于第二个选项(自定义用户模型),您可以这样做:

在 sample_app 中创建模型并在 settings.py 中给出其参考,例如:

AUTH_USER_MODEL = 'sample_app.MyUser'

更多信息:

Customizing authentication in Django