[英]How to figure out NoReverseMatch at / in Django
Hi and thank you for your time Im using Django and i've got a following issues:嗨,感谢您抽出时间使用 Django,但我遇到了以下问题:
When i try to go to the dashboard page or to the event_list page i get the error.当我尝试转到仪表板页面或 event_list 页面时,出现错误。 I know that it depends to url's links put in the templates files that use EventoDetailView and url name=dettagli but i don't understand the reason why.
我知道这取决于放置在使用 EventoDetailView 和 url name=dettagli 的模板文件中的 url 链接,但我不明白原因。 Im trying to figure it out but im not able to do this.
我试图弄清楚,但我无法做到这一点。 This is the code:
这是代码:
Model.py模型.py
class Evento(models.Model):
nome = models.CharField(max_length=200, default='', blank=True, null=True)
descrizione = models.TextField(max_length=5000, default='', blank=True, null=True)
slug = models.SlugField()
objects = models.Manager()
cover = models.ImageField(upload_to='media/', default='', blank=True, null=True)
data = models.DateTimeField(auto_now=False, auto_now_add=False, blank=True, null=True)
author = models.ForeignKey("auth.User", on_delete=models.CASCADE, verbose_name="Balneatore", null=True)
stabilimento = models.ForeignKey(Stabilimento, blank=True, null=True)
saved = models.ManyToManyField(User, related_name='saved', blank=True)
def __unicode__(self):
return self.nome
def total_saved(self):
return self.saved.count()
def get_absolute_url(self):
return reverse("eventi:dettagli", args=[self.id])
class Meta:
verbose_name = "Evento"
verbose_name_plural = "Eventi"
@receiver(pre_save, sender=Evento)
def pre_save_slug(sender, **kwargs):
print (kwargs)
slug = slugify(kwargs['instance'].nome)
kwargs['instance'].slug = slug
View.py查看.py
def EventiListView(request):
evento_list = Evento.objects.all()
evento_filter = EventoFilter(request.GET, queryset=evento_list)
context = {
'evento_list': evento_list,
}
return render(request, 'evento_filter_list.html', {'filter': evento_filter}, context)
def EventoDetailView(request, id):
evento = get_object_or_404(Evento, id=id)
#eventi_salvati = Evento.objects.filter(saved=saved)
is_saved = False
if evento.saved.filter(id=request.user.id).exists():
is_saved = True
context = {
'evento': evento,
'is_saved': is_saved,
'total_saved': evento.total_saved(),
#'eventi_salvati': eventi_salvati,
}
return render(request, 'evento.html', context)
#dashboard balneatore = Eventi Balneatore
def EventiPubblicati(request):
eventi = Evento.objects.filter(author=request.user)
context = {
"eventi": eventi,
}
return render(request, "eventi_pubblicati.html", context)
Urls.py网址.py
urlpatterns = [
url(r'^$', views.EventiListView, name='search'),
url(r'(?P<id>\d)/$', views.EventoDetailView, name='dettagli'),
url(r'(?P<id>\d+)/eventi-salvati/$', views.EventiSalvatiView, name="salvati"),
]
detail.html详细信息.html
<a class="text-white" href="{{ evento.get_absolute_url }}">
dashboard.html仪表盘.html
<td><a href="{{ evento.get_absolute_url }}">{{evento.nome}}</a></td>
<td><a href="{% url 'update' evento.id %}" class = "btn btn-danger">Modifica</a></td>
This is the eventi page error这是事件页面错误
NoReverseMatch at /eventi/
Reverse for 'dettagli' with arguments '(21,)' not found. 1 pattern(s) tried: [u'eventi/(?P<id>\\d)/$']
Request Method: GET
Request URL: http://127.0.0.1:8000/eventi/
Django Version: 1.11.21
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'dettagli' with arguments '(21,)' not found. 1 pattern(s) tried: [u'eventi/(?P<id>\\d)/$']
Exception Location: /Library/Python/2.7/site-packages/django/urls/resolvers.py in _reverse_with_prefix, line 497
Python Executable: /usr/bin/python
Python Version: 2.7.10
Python Path:
['/Users/vittorio/Desktop/app varie/app3 nuovo/stabilimare',
'/Library/Python/2.7/site-packages/pip-19.2.3-py2.7.egg',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/Library/Python/2.7/site-packages',
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC']
Server time: Gio, 5 Dic 2019 18:04:10 +0100
This is the dashboard error这是仪表板错误
NoReverseMatch at /dashboard/
Reverse for 'dettagli' with arguments '(21,)' not found. 1 pattern(s) tried: [u'eventi/(?P<id>\\d)/$']
Request Method: GET
Request URL: http://127.0.0.1:8000/dashboard/
Django Version: 1.11.21
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'dettagli' with arguments '(21,)' not found. 1 pattern(s) tried: [u'eventi/(?P<id>\\d)/$']
Exception Location: /Library/Python/2.7/site-packages/django/urls/resolvers.py in _reverse_with_prefix, line 497
Python Executable: /usr/bin/python
Python Version: 2.7.10
Python Path:
['/Users/vittorio/Desktop/app varie/app3 nuovo/stabilimare',
'/Library/Python/2.7/site-packages/pip-19.2.3-py2.7.egg',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/Library/Python/2.7/site-packages',
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC']
Server time: Gio, 5 Dic 2019 18:17:53 +0100
The url named dettagli go to the event detail page and if i type the url manually the page works.名为 dettagli 的 url 转到事件详细信息页面,如果我手动输入 url,该页面将正常工作。 The pages that don't work are the pages that have the link to the detail page.
不起作用的页面是具有指向详细信息页面的链接的页面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.