장고 걸스에서 예제를 따라하는 도중 [템플릿의 동적 데이터] 부분을 따라하면 데이터베이스

 
권준상

장고 걸스에서 예제를 따라하는 도중
[템플릿의 동적 데이터] 부분을 따라하면
데이터베이스에서 posts에 등록된 글들에 대한 조회가 되어야하는데 안됩니다.
runserver를 해둔 부분에서도 200이 떨어지는거 보니 문법에는 이슈가 없어보이긴한데 흐음

[post_list.html]

Hi there!

It works!

{{ posts }}
{% for post in posts %}

published: {{ post.published_date }}

{{ post.title }}

{{ post.text|linebreaksbr }}

{% endfor %}

[views.py]
from django.shortcuts import render
from django.utils import timezone
from .models import Post

# Create your views here.
def post_list(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by(‘published_date’)
return render(request, ‘blog/post_list.html’, {})

혹시 제가 잘못 기입한 부분이 있는지 궁금합니다.
그리고 다음 부분에서 pulished_date__lte가 어떤의미인가요?
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by(‘published_date’)

published_date를 필드로 지정을 했는데 __lte가 붙는 이유를 모르겠네요

미리 답변 감사합니다.
(관련 사이트 : http://tutorial.djangogirls.org/ko/django_templates/)

  • Chinseok Lee

    글이 중복해서 등록되었네요. 🙂

    published_date__lte=timezone.now() 조건에 맞는 post 가 없어서인듯합니다.

    lte 는 less than equal 이라는 뜻이며 =
    lt 는 less than 이며

    그러므로 Post.objects.filter(published_date__lte=timezone.now()) 는 포스팅 목록 중에 published_date 가 현재시간보다 작거나 같은 Post만 필터링하겠다는 뜻입니다. published 가 된 포스팅이 있는 지 확인해보시고, admin 통해서 published_date 의 값도 확인해보세요.

    권준상

    흐흐 역시 빠른 답변을 주실거 같았는데 감사합니다 ^^

    권준상

    Seung-Hyo Seo 먼저 중복 포스팅이 된 것 같아서 하나는 없어도 될 것 같습니다.
    둘째는 코드는 gist.github.com 같은 곳을 이용하시거나 pastebin.com 을 이용하시면 가독성이 좋을 것 같습니다.

    __lte 는 django orm 의 filter 부분을 보시면 좀 더 이해가 쉬울 듯 합니다. less then or equal 인가 그럴껍니다 우리 말로 하자면 작거나 같은(혹은 이하) 의 의미가 되겠네요.

    ORM 문법상으로 봤을땐 현재 시간 보다 작은 그러니까 현재 시간 이전 에 published_date 가진 post 들을 보는 것이겠네요.

    Build software better, together
    GitHub is where people build software. More than 15 million people use GitHub to discover, fork, and…
    GIST.GITHUB.COM

    글이 중복되어 답변 주신 부분 추가하였습니다

    JuHong Jung

    장알못입니다만 render 함수 호출할 때 템플릿한테 변수 같이 넘겨줘야 하는데 안 넘겨주는 것으로 보이네요. 이 문제는 아닌가요?

    Seung-Hyo Seo

    https://docs.djangoproject.com/en/1.10/ref/models/querysets/#id4

    링크를 덧 붙입니ㄷㅏ.

    Donghyun Cho

    @JuHong Jung님이 말씀하신대로 response를 return 할 때 결과를 context로 넘겨주셔야 템플릿에서 처리가 가능합니다.

Advertisements