要实现按标签接收所有帖子并实时获取更新的点赞数,可以采用以下解决方法:
from django.db import models
class Post(models.Model):
content = models.TextField()
tags = models.ManyToManyField(Tag)
likes = models.PositiveIntegerField(default=0)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Tag(models.Model):
name = models.CharField(max_length=50)
from django.shortcuts import render
def post_list(request):
posts = Post.objects.all().order_by('-updated_at')
return render(request, 'post_list.html', {'posts': posts})
def update_likes(request, post_id):
post = Post.objects.get(id=post_id)
post.likes += 1
post.save()
return redirect('post_list')
{% for post in posts %}
{{ post.content }}
Tags: {% for tag in post.tags.all %}{{ tag.name }}, {% endfor %}
Likes: {{ post.likes }}
Like
{% endfor %}
from django.urls import path
from .views import post_list, update_likes
urlpatterns = [
path('posts/', post_list, name='post_list'),
path('posts//likes/', update_likes, name='update_likes'),
]
这样,当用户访问/posts/路径时,会展示所有帖子的列表,并可以点击点赞按钮来更新帖子的点赞数。
下一篇:按标签进行决策树