gpt4 book ai didi

mysql - 获取当前登录的用户与给定模型实例的关系

转载 作者:行者123 更新时间:2023-11-30 00:10:29 25 4
gpt4 key购买 nike

假设我们有一个名为 Author 的模型:

class Author(models.Model):
name = models.CharField(max_length=250)

我们还有一项功能可以让用户关注特定作者:

class UserFollow(models.Model):
author = models.ForeignKey(Author)
user = models.ForeignKey(User)

如果您的 UI 中有一个按钮,允许登录用户关注/取消关注这些作者。检查该用户是否已经关注某个作者的一种方法是查询 UserFollow 中是否存在记录。但是,当您获取 10/20 等作者的列表时,您将如何检查当前登录用户的每个作者?

通常的方法会导致+X数量的额外查询,具体取决于每页加载的项目数量。有没有更有效的方法来达到同样的效果?

提前致谢

最佳答案

您可以获取 View 中 UserFollow 的所有实例,将其作为变量传递给模板,然后您可以检查给定作者是否在此列表中

def my_view(request):
following = list(UserFollow.objects.filter(user=request.user))
template_context = {
'following': following
}

模板:

{% for author in authors %}
{% if author in following %}
{# do some magic #}
{% endif %}
{% endfor %}

关于mysql - 获取当前登录的用户与给定模型实例的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24110518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com