我有一个使用User
两次作为外键的列表模型。
第一是ForeignKey
关于创造者。至于ManyToManyField
该列表的用户,排名第二
class TodoList(models.Model):
creator = models.ForeignKey(User, default=1,related_name='created_by')
list_users = models.ManyToManyField(User,related_name='list_users')
title = models.CharField(max_length=120)
slug = models.SlugField(max_length=10, blank=True, null=True)
status = models.SlugField(choices=STATUS_CHOICES, default='active', max_length=10)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
我想做的是:
这是我的#1代码:
todolist = get_object_or_404(TodoList, slug=list_slug)
users = todolist.list_users
第一行工作正常。但是,当我得到list_users
它时,auth.User.None
即使该列表通过admin添加了3个用户,它也将返回。
这是我的#2代码:
user = request.user
user_todo_lists = user.todolist.all()
该页面将发送:
AttributeError:“用户”对象没有属性“ todolist”
但是当我重新命名list_users
来user
。它将正常工作。可能是什么问题呢?
关于第一个问题,您可能想要todolist.list_users.all()
。(也就是说,您想要一个QuerySet
,而不是一个Manager
。)
关于您的第二个问题,我不确定您实际上要尝试建立哪个关系,但是无论哪种情况,您都需要使用定义的属性related_name
。(即user.created_by.all()
或user.list_users.all()
。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句