Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查当前用户是否已经喜欢列表视图中的帖子?_Python_Django - Fatal编程技术网

Python 如何检查当前用户是否已经喜欢列表视图中的帖子?

Python 如何检查当前用户是否已经喜欢列表视图中的帖子?,python,django,Python,Django,我显示了一个帖子列表视图,帖子可以被喜欢,我想检查用户是否已经喜欢该帖子,这样我就可以显示一个“喜欢”或“不喜欢”按钮。我该怎么做?我猜它与相关的_名称有某种联系,但不知道确切的联系。或者我可以把它放在模型或视图中,如何以最好的方式做到这一点 用户模型-为每个用户生成用户配置文件 class User(AbstractUser): pass class UserProfile(models.Model): user = ForeignKey( settings

我显示了一个帖子列表视图,帖子可以被喜欢,我想检查用户是否已经喜欢该帖子,这样我就可以显示一个“喜欢”或“不喜欢”按钮。我该怎么做?我猜它与相关的_名称有某种联系,但不知道确切的联系。或者我可以把它放在模型或视图中,如何以最好的方式做到这一点

用户模型-为每个用户生成用户配置文件

class User(AbstractUser):
    pass


class UserProfile(models.Model):
    user = ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        )

    def __str__(self):
        return self.user.username


def post_user_created_signal(sender, instance, created, **kwargs):
    if created:
        UserProfile.objects.create(user=instance)
后模型

class Post(models.Model):
    author = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
    text = models.TextField()
    slug = models.SlugField(max_length=255, unique=True)
    timestamp = models.DateTimeField(auto_now_add=True)
    likes = models.ManyToManyField(UserProfile, related_name="posts")
景色

class PostListView(generic.ListView):
    model = Post
    template_name = "posts/post_list.html"
    context_object_name = "posts"

    form = PostForm()

    def get_queryset(self):
        return Post.objects.order_by("-timestamp")

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['form'] = self.form
        return context

    def post(self, request, *args, **kwargs):
        form = PostForm(request.POST)
        if form.is_valid():
            form.instance.author = get_author_userprofile(self.request.user)
            form.save()
            return redirect('posts:post-list')