2017-03-13 4 views
0

데이터베이스의 모든 이미지가 표시되는 '목록'보기를 작성하려고했습니다.장고 1.10 NoReverseMatch - 종료되지만 일치하지 않습니다?

{% extends "base.html" %} 
{% block title %}Your images{% endblock %} 
{% block content %} 
    <ul> 
     {% for picture in images %} 

      <a href="{% url "detail" id=picture.id slug=picture.slug %}"> 
      <img src="{{ picture.image.url }}" class="image-detail"> 
      </a> 

     {% endfor %} 
    </ul> 

{% endblock %} 

그리고 목록 및 세부 URL을 : 이 템플릿입니다

url(r'^list/$', views.image_list, name='list')

사용자가 사진을 클릭

url(r'^detail/(?P<id>\d+)/(?P<slug>[\w]+)/$',views.image_detail,name='detail')

, 그는 해당 페이지로 이동해야한다 '세부 '보기.

def image_detail(request, id, slug): 
    image = get_object_or_404(Image, id=id, slug=slug) 
    return render(request, 
    'images/image/detail.html', 
    {'section': 'images', 
    'image': image}) 

def image_list(request): 
    images = Image.objects.all() 
    return render(request,'images/image/list.html',{'images':images}) 

'detail'보기에는 두 개의 인수 (id 및 slug)가 있습니다. 위의 템플릿에서 각 그림의 ID와 슬러그 (id=picture.id slug=picture.slug)에 대한 인수를 얻습니다. 나는 서버를 실행 않았다 후, 나는 내가 "NoReverseMatch"오류가 발생했습니다

, 내 웹 사이트에 목록 페이지에 액세스하려고 할 때 : 예외 값 : 인수 '세부 사항' '()'및 키워드에 대한 역 인수 '{'id ': 1,'slug ':'django-and-duke '}'를 찾을 수 없습니다. 0 번 시도 : [].

셸을 시작하고 이미지 모델을 가져 왔으며 ID 및 슬러그가없는 이미지가 있는지 확인하고 싶습니다.

>>> Image.objects.get(id=1,slug='django-and-duke') 
<Image: Django and Duke> 

실제로 요청한 ID와 슬러그가있는 이미지 개체가 있습니다 ... 무슨 일이 일어나고 있습니까?

편집 : 이미지 모델 :

class Image(models.Model): 

    user = models.ForeignKey(settings.AUTH_USER_MODEL, 
             related_name='images_created') 

    title = models.CharField(max_length=200) 
    slug = models.SlugField(max_length=200, 
            blank=True) 

    users_like = models.ManyToManyField(settings.AUTH_USER_MODEL, 
            related_name='images_liked', 
            blank=True) 

    image = models.ImageField(upload_to='images',blank=True) 

    description = models.TextField(blank=True) 

    created = models.DateField(auto_now_add=True, db_index=True) 

    objects = models.Manager() # The default manager. 
    published = PublishedManager() # Our custom manager. 

    def __str__(self): 
     return self.title 

    def save(self, *args, **kwargs): 
     if not self.slug: 
      self.slug = slugify(self.title) 
      super(Image, self).save(*args, **kwargs) 

    def get_absolute_url(self): 
     return reverse('images:detail', args=[self.id, self.slug])` 
+0

어느 URL을 선택하십시오.py는 그 안에있는 패턴입니까? 기본 프로젝트의 urls.py에 없으면 어떻게 포함합니까? – Alasdair

+1

그 오류는 해당 항목이 존재하지 않는다고 말하지 않으며 URL 패턴을 찾을 수 없다고 말합니다. –

+0

모델을 게시 할 때'get_absolute_url' 메서드가 정의되어 있습니까? –

답변

2

당신은 namespacing의 URL입니다.

urlpatterns = [ 
    ... 
    url(r'^', include('images.urls', namespace='images')) 
] 

일부 편집-생각 : 가능성이 같은 뭔가를 urls.py 루트에서

<a href="{% url 'images:detail' id=picture.id slug=picture.slug %}"> 

: 그래서, 그 같은 것

  1. id=slug={% url %} 내부의 일부는 필요하지 않습니다. 그것은 그것들 없이도 작동합니다. 그러나 명시 적 암시 적보다 낫다, 맞습니까? 에러의 경우

  2. : Exception Value: Reverse for '<view_name>' with arguments '('arg1', ...)' and keyword arguments '{'key1': kayvalue1, ...}' not found. 0 pattern(s) tried:[] 발생은 시간 후 99 % (정확한 인수 및/또는 kwargs로)와 검색된 url pattern하지만 namespace가 없습니다. 의 오류 때 {% url 'namespace:view_name' args/kwrags here %}

  3. : 솔루션 Exception Value: Reverse for '<view_name>' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried:[]가 발생하면 배 url pattern의 다음 99 %는 하지만 인수 및/또는 kwargs로는 인식되지 않은 발견했다. 해결책 : 귀하의 신고/구문을 잘 확인하십시오. urls

+0

빠른 답변 주셔서 감사합니다! 위대한 작품! – ROBlackSnail

관련 문제