0

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

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

我相信这与我的用户类继承自 AbstractUser 的事实有关

实用程序.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)

模型.py

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

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

设置.py

AUTH_USER_MODEL = 'main.User' 

数据库也更新为空白用户。我觉得这可能很容易,但我无法弄清楚!谢谢。

4

1 回答 1

0

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

于 2021-02-15T13:46:40.583 回答