我很困惑。我正在嘗試為博客中的帖子設置投票系統。但姜戈總是在投票積極的一方進行總結,/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
提交
取消