为了账号安全,请及时绑定邮箱和手机立即绑定

django 投票系统失败

django 投票系统失败

湖上湖 2023-08-03 16:22:14
我很困惑。我正在尝试为博客中的帖子设置投票系统。但姜戈总是在投票积极的一方进行总结,/blog/models.pyclass Post(models.Model):    STATUS_CHOICES = (        ('draft', 'Draft'),        ('published', 'Published'),    )    title = models.CharField(max_length=250)    slug = models.SlugField(max_length=250,                            unique_for_date='publish')    author = models.ForeignKey(User,                              on_delete=models.CASCADE,                              related_name='blog_posts')    body = models.TextField()    publish = models.DateTimeField(default=timezone.now)    created = models.DateTimeField(auto_now_add=True)    updated = models.DateTimeField(auto_now=True)    status = models.CharField(max_length=10,                              choices=STATUS_CHOICES,                              default='draft')    post_pos = models.IntegerField(default=0)    post_neg = models.IntegerField(default=0)    objects = models.Manager() # The default manager.    published = PublishedManager() # Our custom manager.    class Meta:        ordering = ('-publish',)    def __str__(self):        return self.title    def get_absolute_url(self):        return reverse('blog:post_detail',                       args=[self.publish.year,                             self.publish.month,                             self.publish.day, self.slug])/blog/urls.pyurlpatterns = [    path('', views.PostListView.as_view(), name='post_list'),    path('<int:year>/<int:month>/<int:day>/<slug:post>/',        views.post_detail,        name='post_detail'),    path('<int:post_id>/share/',views.post_share, name='post_share'),    path('<int:post_id>/',views.positive_post, name='positive_post'),    path('<int:post_id>/',views.negative_post, name='negative_post'),]有谁知道发生了什么事吗?
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

两个路径解析为相同的 URL。事实上,如果你看看 Django 为{% url 'blog:positive_post' post.id %}和生成的内容{% url 'blog:negative_post' post.id %},它都会返回,并填充。因此 Django 将触发路径列表中匹配的第一个视图。/post.idpost.id.idpost

您应该使路径不重叠,例如:

    path('<int:post_id>/up/',views.positive_post, name='positive_post'),
    path('<int:post_id>/down/',views.negative_post, name='negative_post'),

注意HTTP 协议9 节 指定 GET 和 HEAD 之类的请求不应产生副作用,因此您不应使用此类请求更改实体。通常,POST、PUT、PATCH 和 DELETE 请求用于此目的。在这种情况下,您<form>将触发一个 POST 请求,或者使用一些 AJAX 调用。


查看完整回答
反对 回复 2023-08-03
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信