我有两个与M2M字段非常相似的模型,不知何故,我试图查询其中一个,它工作得很好,但当我用另一个尝试相同的代码时,它给了我错误。我能找到的唯一区别是related_name
我找到了一个解决方法,但我仍然很好奇,如果我下次遇到同样的问题,我如何才能让它工作。
(我只写了我拥有的M2M字段,而且每个模型只有一个M2M字段,尽管仔细想想,如果有多个M2M怎么办,但这不是这个问题)
这是我的工作模型
class Team(View):
members = models.ManyToManyField(User, blank=True)这是具有上述模型的视图(跳过class、def post等)
user = User.objects.filter(id=111).first()
all_members = user.Team_set.filter() # this would return all下面是给我带来问题的模型
class Room(View):
participants = models.ManyToManyField(User, blank=True, related_name='participants')这是具有上述模型的视图
user = User.objects.filter(id=111).first()
all_p = user.room_set.filter() # this then gives me error of 'User' object has no attribute 'room_set'提前感谢您的帮助
发布于 2017-07-10 07:33:55
在定义related_name时,您需要这样使用它:
Model.related_name.* 别名related_model_set被销毁。
如上所述,您的代码应该如下所示:
user = User.objects.filter(id=111).first()
all_p = user.participants.filter() # this then gives me error of 'User' object has no attribute 'room_set'https://stackoverflow.com/questions/45002009
复制相似问题