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

2024-04-27 11:36:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个房屋项目,有挂牌模式。Listing有一个名为favorites的ManyToManyField,它应该包含在列表的详细信息页面上单击favorite按钮的用户的所有用户名。现在,favorite按钮将用户名添加到列表的收藏夹中,但是由于我没有正确地重定向到列表详细信息页面,所以404s出现了

我一直在努力学习这个教程(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)
...

清单\u 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>

URL.py:

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

视图.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())
...

现在我得到:

Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/favorite/?listing_id=48 Raised by: reviews.views.favorite_listing

非常感谢您的帮助


Tags: namepyidurl列表getmodelsrequest