2017-09-23 47 views
1

我想了解django是如何工作的,但我在视图中有一个问题。在Django测试视图,需要一个手

下面

def post_list(request): 
    posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date') 
    return render(request, 'blog/post_list.html', {'posts': posts}) 

代码中,我明白了字典,但我不知道为什么{'posts': posts}是同一个词字典和值没有引号。

当我使用字典我使用类似:

hello = {'my_key': 'this is text', 'my_key2': 2017 }

{'posts': posts},在这个例子后显示两次,第二,我的意思是值没有引号。

任何人都可以解释我吗?

+0

不确定为什么你认为这些有什么不同。引号中的第一个元素是关键;第二个是价值。 –

+0

这与您已经知道的字典完全相同,“posts”是关键字,"posts“是值,即过滤对象。关键是一种在模板中调用你的价值的方法,它也可以是'render(request,'blog/post_list.html',{'filtered_posts':posts})' – PRMoureu

回答

0

当您使用的语法如下:

hello = {'my_key': 'this is text', 'my_key2': 2017 } 

这里关键'my_key''this is text'

但这里:

posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date') 

在这种帖子是一个变量,它有一些价值

context = {'posts':posts} 

在这种情况下'posts'是帖子可变的值。

我希望它对你有意义。上面的每个人试图说同样的事情。