![](/img/trans.png)
[英]Django model instance fields with ManyToMany relationship to Dict
[英]Django ManyToMany Relationship can't access fields
我有一個列表模型,兩次使用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
,即使該列表通過admin添加了3個用戶,它也會返回auth.User.None
。
這是我的#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()
。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.