【问题标题】:How can I refresh a page automatically after a button has been clicked?单击按钮后如何自动刷新页面?
【发布时间】:2019-08-22 04:17:44
【问题描述】:

我正在开发一个带有列表模型的住房项目。列表有一个称为收藏夹的 ManyToManyField,它应该包含在列表的详细信息页面上单击收藏按钮的所有用户的用户名。现在收藏按钮将用户名添加到列表的收藏夹,但随后出现 404,因为我没有正确重定向到列表详细信息页面。

我一直在尝试遵循本教程 (https://www.youtube.com/watch?v=VoWw1Y5qqt8),尽管我认为我遵循正确,但在教程中我的页面 404s 会刷新(大约 6:30)。

这里是models.py:

class Listing(models.Model):
    favorites = models.ManyToManyField(User, related_name='favorites', 
        blank=True)
...

listing_detail.html:

...
<form action="{% url 'favorite_listing' %}" method="listing">
  <button type="submit" name="listing_id" value="{{ listing.id }}" 
    class="btn btn-primary">Favorite</button>
</form>

urls.py:

...
urlpatterns = [
    ...
    url(r'^favorite/$', views.favorite_listing, name="favorite_listing"),
]

views.py:

...
def favorite_listing(request):
    listing = get_object_or_404(Listing, 
        id=request.POST.get('listing_id'))
    listing.favorites.add(request.user)
    return HttpResponseRedirect(listing.get_absolute_url())
...

到目前为止,我得到了:

找不到页面 (404) 请求方法:GET 请求网址:http://127.0.0.1:8000/favorite/?listing_id=48 提出者:reviews.views.favorite_listing

非常感谢任何和所有帮助!

【问题讨论】:

  • 你使用的是什么版本的 Django?

标签: python html django sqlite


【解决方案1】:

你可以使用 return redirect(reverse(your-route))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 2014-10-21
    • 2014-04-10
    • 1970-01-01
    • 2013-10-07
    相关资源
    最近更新 更多