gpt4 book ai didi

python - django 用户模型 - 获取其他自定义字段

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:32 24 4
gpt4 key购买 nike

我被困住了。

我有一个用户模型,它是 django 用户模型的子类。

我还有其他与我的用户模型相关的表。

我想从这些表中获取一些值,它说:

'User' object has no attribute 'users_bewertung'

我的代码是:

    _username = request.POST.get('username_login')
pwd = request.POST.get('pwd_login')
user = authenticate(username=_username, password=pwd)
if user is not None:
if user.is_active:
login(request, user)
ratings = user.users_bewertung.all()
#...

users_bewertung是表Bewertung到表User的引用字段的相关名称:

von_user = models.ForeignKey(User,related_name="users_bewertung")

我如何通过相关管理器访问这些信息?

编辑:我的 model.py:

from django.contrib.auth.models import User

class User(User):
registerdate = models.CharField(max_length=400,default='')
foto = models.ImageField(upload_to="user/",default='')
uniq_hashed = models.CharField(max_length=400,default='')
kennwort = models.CharField(max_length=200,default='')
confirmed = models.CharField(max_length=10,default='')

最佳答案

不应该是user.bewertung.users_bewertung吗?

尝试进入 shell 并在用户上使用 dir():

python manage.py shell
from django.contrib.auth.models import User
usrs = User.objects.all()
dir(usrs[0])

它应该向您显示该用户可用的方法。您应该能够使用类似的东西来发现正确的方法。

您可以使用用户的 __isnull 过滤器更好地缩小范围:

usrs = User.objects.filter(bewertung__isnull=False)
dir(usrs[0])

更新

也许您需要尝试_set:

ratings = user.users_bewertung_set.all()

ratings = user.bewertung_set.all()

另一种可能性

也许问题是 Bewertung 模型没有您正在登录的用户。也许您需要在引用模型之前检查它是否存在:

if user.is_active:
login(request, user)
if hasattr(user, 'users_bewertung'):
ratings = user.users_bewertung.all()

关于python - django 用户模型 - 获取其他自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18011339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com