我很困惑。我正在嘗試為博客中的帖子設(shè)置投票系統(tǒng)。但姜戈總是在投票積極的一方進(jìn)行總結(jié),/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'),]有誰(shuí)知道發(fā)生了什么事嗎?
1 回答

慕標(biāo)5832272
TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
兩個(gè)路徑解析為相同的 URL。事實(shí)上,如果你看看 Django 為{% url 'blog:positive_post' post.id %}
和生成的內(nèi)容{% url 'blog:negative_post' post.id %}
,它都會(huì)返回,并填充。因此 Django 將觸發(fā)路徑列表中匹配的第一個(gè)視圖。/post.id
post.id
.id
post
您應(yīng)該使路徑不重疊,例如:
path('<int:post_id>/up/',views.positive_post, name='positive_post'), path('<int:post_id>/down/',views.negative_post, name='negative_post'),
注意:HTTP 協(xié)議第9 節(jié) 指定 GET 和 HEAD 之類(lèi)的請(qǐng)求不應(yīng)產(chǎn)生副作用,因此您不應(yīng)使用此類(lèi)請(qǐng)求更改實(shí)體。通常,POST、PUT、PATCH 和 DELETE 請(qǐng)求用于此目的。在這種情況下,您
<form>
將觸發(fā)一個(gè) POST 請(qǐng)求,或者使用一些 AJAX 調(diào)用。
添加回答
舉報(bào)
0/150
提交
取消