如何使用 AbstractUser class 访问 request.user

How to access request.user with AbstractUser class

我正在尝试创建一个订单对象并将订单的客户字段(这是用户的外键)分配给当前用户。即使它通过了 if 语句并且它可以验证 request.user,它也会将 customer 指定为空白值。

当我打印 customer 时它会打印一个空行,但是当我打印 customer.id 时它会打印客户的 ID。这发生在项目的所有视图中,因此它是一个全球性问题

我相信这与我的用户 class 继承自 AbstractUser

这一事实有关

utils.py

def cartData(request):
    if request.user.is_authenticated:
        print('This will print')
        customer = request.user
        print(customer) #This will print as a blank line
        print(customer.id) #This will print the request.user.id
        print(customer.username) #This will print the request.user.username
        order, created = Order.objects.get_or_create(customer=customer, complete=False)

models.py

from django.db import models
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
   author = models.BooleanField(default=False)

settings.py

AUTH_USER_MODEL = 'main.User' 

数据库也更新为空白用户。我觉得这可能很容易,但我想不通!谢谢。

我现在已经向用户添加了 first_name 和 last_name 并且它有效。仍然有点困惑,因为我没有将 __str____repr__ 设置为用户模型的名字或姓氏。如果有人知道为什么会这样,我很想知道。感谢大家的帮助!