내 localhost : 8000을 열려고 시도 할 때마다이 오류가 발생합니다. 작업중인 앱의 홈페이지가됩니다. 다음은 반대 역응 이유가 없습니까?
NoReverseMatch at/
Reverse for 'category_detail' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: ['category/(?P<slug>[\\-\\w]+)/$']
는 템플릿에 사용 {%의 URL을 %}, 내 models.py, 내 urls.py하고 무슨 일
views.py의? 내가 도대체 뭘 잘못하고있는 겁니까?
#in Template.
<a href="{% url 'category_detail' %}" class="button tiny">View</a>
#my urls.py
from django.conf.urls import patterns, url
from . import views
urlpatterns = patterns('',
url(r'^$', views.home.as_view(), name='home'),
url(r'^categories/$', views.MyCategory.as_view(), name='all_categories'),
url(r'^category/(?P<slug>[-\w]+)/$', views.CategoryDetail.as_view(), name='category_detail'),
url(r'^tip/(?P<slug>[-\w]+)/$', views.ToolkitDetail.as_view(), name='toolkit_detail'),
)
#my models.py
from django.db import models
from django.core.urlresolvers import reverse
class Category(models.Model):
slug = models.SlugField()
title = models.CharField(max_length=250)
heading = models.CharField(max_length=750)
description = models.TextField()
link = models.URLField()
def get_absolute_url(self):
return reverse('category_detail', kwargs={'slug': self.slug})
#my views.py
class MyCategory(ListView):
model = Category
context_object_name = 'category'
template_name = 'category.html'
class CategoryDetail(DetailView):
slug_field = 'slug'
model = Category
slug_url_kwarg = 'slug'
context_object_name = 'category'
template_name = 'category_detail.html'
위의 내용은 내 문제의 요약입니다. 제발 어떤 도움을 주시면 감사하겠습니다. 그것의 명확한 내 문제가 확실 해요,하지만 StackOverflow 날 텍스트를 추가하지 않고 게시 할 수 없기 때문에, 그렇게하고 있어요. 나는 위의 발췌 부분이 내 문제에 대해 자명하다고 생각한다. 나는 지금 게시하기 위해 풀려났다.
뭐라 구요, 유진, 당신의 첫 번째 제안은 효과가 없었습니다. 그러나 두 번째 접근법은 Baaam !! 나를 위해. 그것은 효과가있다! 하지만 그것은 여전히 {% url 'text'%}를 이전 프로젝트에서 장고 1.5 버전을 사용하여 성공적으로 사용했기 때문에 여전히 궁금합니다. 그렇다면 갑자기 URL이 작동하지 않는 이유는 무엇입니까? 또는 그것도 URL의 정규식과 관련이있어? 도움 주셔서 감사합니다. 지금 내 페이지를 연결할 수있어 기쁩니다. – Rexford
답변으로 작성한대로 url 이름 뒤에 url 템플릿 태그에 필수 매개 변수를 전달해야합니다. 이 매개 변수는 urls.py 및 view 함수에서 결정됩니다. 당신이 말한 것처럼 일찍 코드가 작동한다는 것은 이상한 일입니다. 장고는 admin에서 get_absolute_url 메소드를 사용합니다. 사용자 정의 템플릿에서 필자가 직접 작성한 템플릿을 호출해야합니다. https://docs.djangoproject.com/en/dev/ref/models/instances/#get-absolute-url –
알겠습니다. 둘 다 작동합니다. 첫 번째 제안으로 처음에는 제대로하지 않았습니다. 존재하지 않는 변수를 호출했습니다. 나는 이것을 알고있어서 기쁩니다. 당신의 도움을 주셔서 감사합니다. – Rexford