2016-07-05 4 views
-1

ListView 페이지에 표시 할 메뉴 항목을 가져 오는 중입니다. 링크를 클릭해도 데이터가 제대로 표시되지 않습니다. 여기 Django 내 모델이 파일에서 파일로 이월되지 않습니다

내 메뉴 carousel.html

{% for item in object_list %} 
    <li> 
     <div class="impx-menu-page-item"> 
     <div class="impx-menu-page-content"> 
      <h4><a href="/menu/{{ item.id }}">{{ item.title }}</a></h4> 
      <div class="impx-menu-page-price"> 
       <h5>${{ item.price }}</h5> 
      </div> 
      <p>{{ item.description }}</p> 
     </div> 
     </div> 
    </li> 
    {% endfor %} 

입니다 그리고 그것은 지금 여기 깨진 부분은 내가에/메뉴/1/메뉴/'어떤 수'

<div class="container"> 
     <div class="row"> 
      <h3><a href="/menu/{{ item.id }}"></a>{{ item.title }}</h3> 

     </div> 
     <div class="row"> 
      <div class = "col-sm-12 col-md-4"> 
       <img src="{{ item.image.url }}" height="300px" width="300px" class = "img img-responsive thumbnail"/> 
      </div> 
      <div class = "col-sm-12 col-md-4"> 
       <h6>Price: ${{ item.price }}</h6> 
       <h6>Materials: {{ item.description }}</h6> 
      </div> 
      <div class = "col-sm-12 col-md-4"> 
       <p>{{ item.description|safe|linebreaks }}</p><br /><br /> 
       <hr /> 
       <h5></h5> 

      </div> 
      <br><br> 
     </div> 
    </div> 
을 가지고 때, 작품,

이 브라우저 여기

<div class="container"> 
    <div class="row"> 
     <h3><a href="/menu/"></a></h3> 

    </div> 
    <div class="row"> 
     <div class = "col-sm-12 col-md-4"> 
      <img src="" height="300px" width="300px" class = "img img-responsive thumbnail"/> 
     </div> 
     <div class = "col-sm-12 col-md-4"> 
      <h6>Price: $</h6> 
      <h6>Materials: </h6> 
     </div> 
     <div class = "col-sm-12 col-md-4"> 
      <p><p></p></p><br /><br /> 
      <hr /> 
      <h5></h5> 

     </div> 
     <br><br> 
    </div> 
</div> 

에 표시되는 것입니다 나의 urls.py

입니다
from django.conf.urls import url, include 
from django.views.generic import ListView, DetailView 
from django.contrib import admin 
from . import views 
from home.models import Menu 


urlpatterns = [ 
    url(r'^$', views.home, name="home"), 
    url(r'^menu/$', ListView.as_view(
         queryset=Menu.objects.all().order_by("-title")[:25], 
         template_name="menu-carousel.html")), 
    url(r'^menu/(?P<pk>\d+)/$', DetailView.as_view(
         model = Menu, 
         template_name="menu-item.html")), 
] 

여기 난 당신이 DetailView 템플릿의 잘못된 컨텍스트 개체 이름을 사용한 적이 가정 내 models.py

from django.db import models 
from django.conf import settings 

class Menu(models.Model): 
    title = models.CharField(max_length = 140) 
    price = models.IntegerField() 
    description = models.TextField() 
    image = models.ImageField(upload_to = 'media/') 
    menu = models.CharField(max_length = 10) 

    def __str__(self): 
     return self.title 

답변

0

입니다. 링크로 추가 사항 :

https://docs.djangoproject.com/es/1.9/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.get_context_object_name

봅니다 {{menu.id}} 대신 {{item.id}}와 메뉴 항목의 ID를 표시합니다. 또한 django 디버그 템플릿을 사용하여 모든 컨텍스트 개체를 볼 수 있습니다.

+0

감사합니다. 그것은 그것을 고쳤다! 이제 이미지를 올바르게 표시하는 방법을 알아 내야합니다. – user3481670

관련 문제