python - 具有自定义字段的 AbstractUser 模型显示 myapp.class.None
问题描述
我有以下模型:
from django.contrib.auth.models import AbstractUser
from django.db import models
class User(AbstractUser):
follows = models.ManyToManyField("self", symmetrical=False, blank=True, null=True)
pass
class Post(models.Model):
title = models.CharField(max_length=255)
body = models.TextField()
likes = models.PositiveIntegerField()
dislikes = models.PositiveIntegerField()
user = models.ForeignKey(User , on_delete=models.CASCADE)
和以下views.py文件:
from django.shortcuts import render
from .models import *
def index(request):
actualUser = User.objects.all()
for i in actualUser:
print(i.id)
print(i.follows)
return render(request, "network/index.html")
但它打印了这个:
1
network.User.None
2
network.User.None
需要帮助无法达到自定义字段如下
解决方案
经理将打印ModelName.None
. 您可以利用.all()
获得QuerySet
该经理提供的:
def index(request):
actualUser = User.objects.all()
for i in actualUser:
print(i.id)
print(i.follows.all())
return render(request, 'network/index.html')
您可以使用.prefetch_related(…)
[Django-doc]来防止N+1 问题并批量加载所有相关对象并在 Django/Python 级别进行 JOINing:
def index(request):
actualUser = User.objects.prefetch_related('follows')
for i in actualUser:
print(i.id)
print(i.follows.all())
return render(request, 'network/index.html')
推荐阅读
- python - Python mock - 修改类属性的模拟类方法
- python - Web 抓取子类或清理返回的 html
- javascript - 如何在 javascript 中访问嵌套在 JSON 中的数据?
- r - “令牌无效或过期。” 当我想从 R 获取推文数据时
- r - 使用 jsonlite::fromJSON 时如何处理空 JSON 值?
- c++ - 如何在 C++ 中解析不可预测的 JSON 字段?
- microk8s - 在 Microk8s 中更改或设置广告地址
- javascript - TypeError:无法读取未定义快递的属性“方法”
- c++ - 我可以压缩多个类的变量声明吗?
- spring - 默认返回 toString() _id mongo spring boot kotlin