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')