Я получаю сообщение об ошибке, подобное этому сообщению здесь .
Однако я получил это сообщение только после того, как выполнил следующие шаги с экземплярами моей модели django, в частности в админке.
У меня есть модель под названием "Товар". В админке я создаю несколько экземпляров этого продукта, каждый с полем «id». Итак, у меня есть 5 продуктов, каждый с "id", "1", "2", "3", "4" и "5".
У меня есть шаблон html, который отображает список все «продукты», с URL-ссылкой на каждый продукт, заданной следующим образом:
class Product(models.Model)
...
def get_absolute_url(self):
return reverse('catalog:product_detail',
args=[self.id, self.slug])
Вот эта часть шаблона:
<a href="{{ product.get_absolute_url }}"> </a>
При нажатии на этот URL-адрес открывается подробная информация о продукте просмотрите следующее (в views.py):
def product_detail(request, id, slug):
product = get_object_or_404(Product,
id=id,
slug=slug)
return render(request,
'catalog/product/detail.html',
{'product': product,})
Я также создал обработчик контекста для отслеживания продуктов, созданных во всех шаблонах на этом веб-сайте, в context_processors.py
.
Теперь, когда я удаляю первые несколько продуктов в админке (продукт «1», «2», «3») и одновременно создаю новые продукты в админке (добавляю «6», «7», «8» и «9»), когда я повторно визуализировал шаблон, я получил эту ошибку «NoReverseMatch».
Я предполагаю, что, поскольку продукты удаляются в админке, но процесс контекста по-прежнему сохраняет запись об этом products, шаблон больше не может находить обратный URL. Как мне "сбросить" эту ситуацию (т.е. сбросить все мои продукты или процессоры контекста)?