如何使用 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__
设置为用户模型的名字或姓氏。如果有人知道为什么会这样,我很想知道。感谢大家的帮助!
我正在尝试创建一个订单对象并将订单的客户字段(这是用户的外键)分配给当前用户。即使它通过了 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__
设置为用户模型的名字或姓氏。如果有人知道为什么会这样,我很想知道。感谢大家的帮助!