Python 通过Django用户对象循环时的AttributeError

Python 通过Django用户对象循环时的AttributeError,python,django,Python,Django,在Django中循环查询用户对象集时,我在尝试访问与另一个模型的每个用户对象相关的集合时,会不断得到AttributeError models.py utils/emails.py 当my daily_completed函数运行时,当试图查找每个用户的“owned_列表”时,它会触发以下AttributeError: AttributeError:“用户”对象没有“拥有的列表”属性 但是,当我将“daily_completed”函数更改为仅代表一个用户运行,而不是遍历所有用户时,它就可以正常工作

在Django中循环查询用户对象集时,我在尝试访问与另一个模型的每个用户对象相关的集合时,会不断得到AttributeError

models.py

utils/emails.py

当my daily_completed函数运行时,当试图查找每个用户的“owned_列表”时,它会触发以下AttributeError:

AttributeError:“用户”对象没有“拥有的列表”属性

但是,当我将“daily_completed”函数更改为仅代表一个用户运行,而不是遍历所有用户时,它就可以正常工作

示例utils/emails.py

上述函数工作正常,不会触发任何AttributeError

有人知道为什么会这样吗?我真的很感谢你的帮助!提前谢谢

以下是整个回溯:

Traceback (most recent call last):
File "C:\projects\slothnote\env\lib\site-packages\celery\app\trace.py", line 240, in trace_task
R = retval = fun(*args, **kwargs)
File "C:\projects\slothnote\env\lib\site-packages\celery\app\trace.py", line 437, in __protected_call__
return self.run(*args, **kwargs)
File "C:\projects\slothnote\env\slothnote\lists\tasks.py", line 14, in daily_completed_tasks_email
daily_completed()
File "C:\projects\slothnote\env\slothnote\lists\emails.py", line 30, in daily_completed
all_lists = user.owned_lists.all()
AttributeError: 'User' object has no attribute 'owned_lists'
更新:

不知道为什么,但当我改变变量的名称时,我会循环。请看这里:

all_users = User.objects.all()
for each_user in all_users:
    # get one big QuerySet
    all_lists = each_user.owned_lists.all()
    print all_lists

上述块按预期执行。所以,我的问题解决了,但我仍然很想知道为什么它以前不起作用。

您能捕获循环中的属性错误并检查触发它的用户吗?用户有什么主键触发它?什么类型,触发它的对象是什么?它得救了吗?你是如何执行每日工作的?另外,请在提问时发布完整的回溯,谢谢您的帮助!当循环遇到QuerySet pk=1中的第一个用户对象时,它将引发AttributeError。如果我删除循环,而是直接获取这个用户对象,如“example uitls/emails.py”中所示,函数将按预期执行。用户被保存,是的,并且每日完成的任务通过芹菜作为定期任务执行。我已经更新了这个问题,以包括整个回溯供参考。这是对象的类型:您是否在emails.py中使用user作为var,而不是在您的函数中,或者在其他地方作为全局变量?@petkostas我不,不。
def daily_completed():

    user = User.objects.get(pk=1)
    # get one big QuerySet
    all_lists = user.owned_lists.all()
    print all_lists
Traceback (most recent call last):
File "C:\projects\slothnote\env\lib\site-packages\celery\app\trace.py", line 240, in trace_task
R = retval = fun(*args, **kwargs)
File "C:\projects\slothnote\env\lib\site-packages\celery\app\trace.py", line 437, in __protected_call__
return self.run(*args, **kwargs)
File "C:\projects\slothnote\env\slothnote\lists\tasks.py", line 14, in daily_completed_tasks_email
daily_completed()
File "C:\projects\slothnote\env\slothnote\lists\emails.py", line 30, in daily_completed
all_lists = user.owned_lists.all()
AttributeError: 'User' object has no attribute 'owned_lists'
all_users = User.objects.all()
for each_user in all_users:
    # get one big QuerySet
    all_lists = each_user.owned_lists.all()
    print all_lists