加入djang的queryset

2024-09-28 22:23:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个模特

class FriendsWith(models.Model):
    username = models.ForeignKey(User,on_delete=models.CASCADE)
    fusername =models.ForeignKey(User,on_delete=models.CASCADE,related_name='fusername')  
    time = models.DateTimeField(auto_now_add=True)
    confirm_request = models.SmallIntegerField(default=1)
    blocked_status = models.IntegerField(default=0)

我想搜索当前登录的所有朋友用户。所以,我就是这样做的

^{pr2}$

其中User是django用户模型 我试图合并这里设置的两个queryset(obj1和obj2),但它不起作用。我可以使用alias在sql中执行相同的操作,但这里我不确定该怎么做。在

我在执行上述代码时遇到此错误:

TypeError:合并“QuerySet”类在每种情况下都必须包含相同的值

请帮助完成这项任务


Tags: 用户namedefaultmodelonmodelsusernamedelete
1条回答
网友
1楼 · 发布于 2024-09-28 22:23:08

我认为您应该在过滤器函数中执行“或”:

from django.db.models import Q
friendship = FriendsWith.objects.filter(Q(username=request.user)|Q(fusername=request.user))

friendship是一个查询集,其中当前用户可以是usernamefusername。您可以使用该集合来获取替代用户,该用户应该是他们的朋友。在

另一个解决方案是使用django-friendship。它是一个很好的django库,用于处理用户之间的友谊和朋友请求等。在

相关问题 更多 >