Django добавить в список наблюдения, списки не отображаются

Я пытаюсь работать над проектом, и одна из функций заключается в том, что пользователи, которые вошли в систему, должны иметь возможность посетить страницу Watchlist, которая должна отображать все объявления, которые пользователь добавил в свой список просмотра.

Пока что я перенаправляюсь при нажатии на кнопку "добавить в список наблюдения", но не появляется кнопка "удалить из списка наблюдения", а также при перенаправлении на страницу списка наблюдения (где я должен просмотреть весь список наблюдения пользователя), она показывает "Список наблюдения не найден.".

URLS.PY

    path("add_watchlist/<int:listing_id>/", views.add_watchlist, name="add_watchlist"),
    path("watchlist", views.watchlist, name="watchlist"),

MODELS.PY

class Watchlist(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    item = models.ManyToManyField(Auction)

    def __str__(self):
        return f"{self.user}'s watchlist"

LAYOUT.HTML

                    <li class="nav-item">
                            <a class="nav-link" href="{% url 'all_category' %}?category={{ category.name}}">Category</a>
                    <li class="nav-item">
                        <a class="nav-link" href="{% url 'create_listing' %}">Sell</a>
                    </li>
                    <li class="nav-item">
                        {% if user.is_authenticated %}
                        <a class="nav-link" href="{% url 'watchlist' %}">Watchlist</a>
                        {% endif %}
                    </li>
                </ul>

VIEWS.PY

@login_required
def add_watchlist(request, listing_id):
    items = Auction.objects.get(pk=listing_id)
    watched = Watchlist.objects.filter(user=request.user, item=listing_id)

    if watched.exists():
        watched.delete()
        messages.add_message(request, messages.ERROR, "Successfully deleted from your watchlist")
        return HttpResponseRedirect(reverse("watchlist"))
        
    else:
        watched, created = Watchlist.objects.get_or_create(user=request.user)
        watched.item.add(items)
        messages.add_message(request, messages.SUCCESS, "Successfully added to your watchlist")
        return redirect('index')

@login_required
def watchlist(request):
    watchlists = Watchlist.objects.all()
    context = {'watchlists':watchlists}
    return render(request, 'auctions/watchlist.html', context)  

DETAILS.HTML

                            {% if request.user.is_authenticated %}
                            <div class="my-2">
                                <form method="POST" action="{% url 'add_watchlist' detail.id %}" class="form-inline">
                                    {% csrf_token%}
                                    
                                    {% if watched%}
                                        <input class="btn btn-secondary btn-block" type="submit" value="Remove from Watchlist" />
                                    {% else %}
                                        <input class="btn btn-secondary btn-block" type="submit" value="Add to Watchlist" />
                                    {% endif %}
                                </form>
                            </div>
                        {% endif %}
                        </div>

WATCHLIST.HTML

        <section>
            <h2>Watchlist</h2>
            <div class="container pb-4">
                <div class="row text-center">
                    {% for item in items %}
                        <div class="col-lg-3 col-sm-4">
                            <a href={% url 'listing_detail' item.id %} class="btn btn-outline-dark btn-sm m-1">
                                    {% if item.image_url %}
                                        <img src='{{ item.image_url }}' alt="{{ item.title }}" style="width:100%">
                                    {% else %}
                                        <img src="https://demofree.sirv.com/nope-not-here.jpg">
                                    {% endif %}  
                                        <h5 class="card-title mb-0">{{ item.title }}</h5>
                            </a>
                        </div>
                    {% empty %}
                        <p>No watchlist found.</p>
                    {% endfor %}
                </div>
            </div>   
        </section>
Вернуться на верх