我很困惑。我正在尝试为博客中的帖子设置投票系统。但姜戈总是在投票积极的一方进行总结,/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.id
post.id
.id
post
您应该使路径不重叠,例如:
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 调用。
添加回答
举报
0/150
提交
取消