单击按钮后如何自动刷新页面?

时间:2019-04-01 03:12:47

标签: python html django sqlite

我正在使用清单模型进行住房项目。清单中有一个名为“收藏夹”的ManyToManyField,该字段应该包含单击清单详细信息页面上的“收藏夹”按钮的用户的所有用户名。现在,“收藏夹”按钮将用户名添加到列表的收藏夹中,但随后添加了404,因为我没有正确地重定向到列表详细信息页面。

我一直在尝试按照本教程(https://www.youtube.com/watch?v=VoWw1Y5qqt8)进行操作,尽管我认为我已经正确地遵循了本教程中的页面404,但它却刷新了(大约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

任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:0)

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