Как я могу автоматически обновить страницу после нажатия кнопки? - PullRequest
0 голосов
/ 01 апреля 2019

Я работаю над проектом жилья с моделью листинга.В листинге есть ManyToManyField, называемый избранным, который должен содержать все имена пользователей, которые щелкнули по избранной кнопке на странице сведений для списка.Прямо сейчас кнопка «Избранное» добавляет имя пользователя в список избранного, а затем 404, потому что я неправильно перенаправляю на страницу сведений о списке.

Я пытался следовать этому руководству (https://www.youtube.com/watch?v=VoWw1Y5qqt8) и хотя я думаю, что правильно выполнил мою страницу 404, пока она находится в руководстве, она обновляется (около 6:30).

Вот модели.py:

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

перечисление_детей.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 URL запроса: http://127.0.0.1:8000/favorite/?listing_id=48 Поднято: reviews.views.favorite_listing

Любая и вся помощь очень ценится!

1 Ответ

0 голосов
/ 01 апреля 2019

Вы можете использовать return redirect(reverse(your-route))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...