Список часов отображается в интерфейсе администратора, но не отображается на сайте django
Я работаю над проектом, и функции заключаются в том, что пользователь должен иметь возможность добавить объект в свой "Список наблюдения". Если товар уже находится в списке, пользователь должен иметь возможность удалить его, а пользователи, которые вошли в систему, должны иметь возможность посетить страницу списка, которая должна отображать все объявления, которые пользователь добавил в свой список.
Когда я нажимаю на кнопку "добавить в список просмотра", она успешно регистрируется в панели администратора (скриншот прилагается), но на моей веб-странице она показывает мне пустое изображение (оно должно показывать изображение листинга), и когда я нажимаю на это изображение, оно показывает мне сообщение об ошибке "Аукцион не соответствует заданному запросу. ' и я заметил, что он дает мне другой url id ( включенный скриншот и отличный url id от фактического url id страницы подробностей и фактический url id страницы подробностей, на которую я должен быть связан (а это 1)).
Также, когда я удаляю один из продуктов/список (все еще нажимая на кнопку добавить в список наблюдения - я позже улучшу это), он удаляет все в списке наблюдения (даже если в списке наблюдения были другие элементы скриншот включен ).
Как остановить это? 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
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.info(request, 'Successfully deleted from your watchlist')
return render(request, 'auctions/watchlist.html', {'all_watchlist': Watchlist.objects.filter(user=request.user)})
else:
watched, created = Watchlist.objects.get_or_create(user=request.user)
watched.item.add(items)
messages.success(request, '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">
<a href="{% url 'add_watchlist' detail.id %}" role="button" class="btn btn-primary btn-block">Add to Watchlist</a>
</div>
{% endif %}
WATCHLIST.HTML
<div class="container pb-4">
<div class="row text-center">
{% for watchlist in watchlists %}
<div class="col-lg-3 col-sm-4">
<a href={% url 'listing_detail' watchlist.id %} class="btn btn-outline-dark btn-sm m-1">
{% if watchlist.image_url %}
<img src='{{ watchlist.image_url }}' alt="{{ watchlist.title }}" style="width:100%">
{% else %}
<img src="https://demofree.sirv.com/nope-not-here.jpg">
{% endif %}
<h5 class="card-title mb-0">{{ watchlist.title }}</h5>
</a>
</div>
{% empty %}
<p>No watchlist found.</p>
{% endfor %}
</div>
</div>