如何从Django中的auth_user表访问自定义列?

时间:2016-04-02 09:48:43

标签: python sql django postgresql django-login

我可以访问Pre define列

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

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

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

我如何访问img_url列?

谢谢。

1 个答案:

答案 0 :(得分:3)

你有两个选择:

  1. 您可以扩展现有的用户模型
  2. 或者您可以实现自定义用户模型
  3. 对于第一个选项(扩展现有模型)您可以这样做:

    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