2012-07-22 2 views
0

Django를 배우면서, 현재 만들었던 "로봇"목록을 만드는 템플릿을 가지고 있습니다. 나는 특정 문제에 대한 도움을 찾고 있지 않다. 나는 혼자서 알아 내려고 노력하고있다. 그러나 내가 알아낼 수 있는지 알고 싶다. 어디에서 내가 실패하고있다.Django 간단한 쿼리를 한 줄씩 확인하는 방법이 있습니까?

조회는 다음과 같습니다. 현재 템플릿에 반환되는 값이 없습니다 (데이터베이스에서 두 개의 "로봇"확실히이 있습니다 :
이 ... 있는지 모르겠어요 무엇

<p>Robotz!</p> 
    {% for bot in robots.all %} 
    <p>{{bot.name}}&nbsp;//{{bot.serialnumber}}</p> 
    {% endfor %} 
<p>And that's a list of robots.</p> 

입니다 - "robots.all은"찾고은 두 번째 줄에 잘못된 장소에,
는 - "bot.name"와 "bot.serialnumber"세 번째로 인쇄 나쁜 값입니다 - "의 봇은"두 번째 줄에 잘못된 구문,
또는
입니다 line.

지금 템플릿은 아무 것도 반환하지 않습니다. 바로 "Robotz!"에서 "And that that 제공된 로봇 페이지에서 로봇의 목록입니다. " 크롬의 Inspect Element는 두 줄 사이에 아무 것도주지 않습니다.

내가 뭘 잘못하고 있는지 알아낼 방법이 있습니까? 이 인스턴스에만 국한된 것은 아니지만 잘못된 위치에서보고 있는지, 잘못된 출력을하고 있는지 확인할 수 있습니다.

다시, 나는 혼자서이 작업을 수행하는 방법을 알아 내기 위해 싶지만 알려 도움을 수있는 도구를 찾고 있어요 어디이를 속이고있어 : 작동 할 요소를 검사 같은 것이있다 Django, Inspect Element를 사용하여 어떤 CSS 행이 있고 활성화되어 있지 않은지를 볼 수있는 것처럼 어떤 행이 있는지/찾고 있지 않은지를 볼 수 있습니다.

+1

로봇 무엇처럼 될 수 있을까? Queryset? 모델 인스턴스? 어떻게 그것을 템플릿에 전달합니까? '로봇을위한 로봇 %. 객체 .all %}' – Tisho

+0

"문법을위한"구문이 틀리면 Django는 TemplateSyntaxError를 던질 것입니다. bot.name과 bot.serialnumber가 나쁜 값이라면 최소한 단락 태그를 가져 와서 // 표시해야합니다. 따라서 문제는'robots.all'이 비어 있거나 유효하지 않아야합니다. 이를 위해 로봇은 템플릿 컨텍스트에 전달 된 QuerySet 인스턴스 여야합니다. 이것이 올바른지 먼저 확인하십시오. 로봇 객체의 목록 일 뿐이라면'.all'은 필요 없습니다. – Ben

답변

3

django-debug-toolbar이 경우 많은 도움이됩니다. 그것은 실행 된 모든 쿼리를 보여줍니다. 줄 단위로 쿼리를 표시하지는 않지만 응용 프로그램에서 어떤 일이 발생했는지 일반적인 정보를 제공합니다.

+0

'django-debug-toolbar'는 도움이 필요한 모든 것을 제공하는데 좋습니다 - 특히 이러한 종류의 문제가있는 경우. 여기서 가장 좋은 비트는 템플릿에서 지역 변수의 내용을 보여줄 수있는 곳인 것처럼 보입니다. 정확히 '로봇'이 무엇을 포함하는지 알려줍니다. – Ben

1

나는 쉘처럼 파이썬을 제공하지만 탭 완료 또는 옵션과 같은 기능을 제공하는 python manage.py shell을 알기를 바랍니다. 보기에서 다른 쿼리/파이썬 코드를 사용해 보는 것이 유용합니다.

Ondrej Slinták가 제안한대로 django 디버그 도구 모음은 다양한 문제를 해결하는 데 매우 유용합니다.

1

구문의 문제입니다. 당신은 어딘가에서 당신의 견해에 로봇리스트를 조립할 가능성이 있습니다. 내가 야생 짐작을하고 템플릿으로 넘길 때 robots이라고 가정한다고 가정합니다. 그들은 설명하는 방법을 장고의이 작품 같은 것들 -

는이 경우에, 당신의 구문은

{% for bot in robots %} 몇 가지 기본적인 장고 자습서 또는 장고의 문서에서보세요해야합니다.

희망이 있습니다.

0

그것은이

views.py

from django.shortcuts import render 
from main.models import Robot 


def robots(request): 
    return render(request, 'robots.html', {'robots': Robot.objects.all()} 

templates/robots.html

<p>Robotz!</p> 
{% for bot in robots %} 
    <p>{{ bot.name }}&nbsp;//{{ bot.serialnumber }}</p> 
{% endfor %} 
<p>And that's a list of robots.</p> 
관련 문제