尝试通过两个词典,但只有第一个有效

  • 本文关键字:有效 第一个 两个 django
  • 更新时间 :
  • 英文 :


views.py:

def home(request):
return render(request, 'blog/home.html', {'title': 'HOME'}, {'post': posts})

在此代码中,只有标题有效。 当我在{'title': 'HOME'}之前取{'post': posts} 时,帖子有效,但标题没有。 我必须在模板中使用两者。我是 django 的初学者。我该如何解决这个问题?

您只能有一个上下文字典,但字典可以包含任意数量的键/值。

def home(request):
context = {'title': 'HOME','post': posts}
return render(request, 'blog/home.html',context)

这个呢?

{
'title': 'HOME',
'post': posts
}

这样,两个变量都是同一对象的一部分。

将这两个值放入相同的数据结构至关重要,因为在代码中,post是第四个参数,是为不同的功能保留的。

只能传递一个字典作为页面的上下文。

def home(request):
context = {'title': 'HOME',
'post': posts }
return render(request, 'blog/home.html', context)

Django 的render函数只接受一个位置参数作为上下文。 这就是为什么你的第一个字典可以工作,第二个字典被砍掉,因为 Django 将第四个位置参数作为content_type

render(request, template_name, context=None, content_type=None, status=None, using=None)

编号 : https://docs.djangoproject.com/en/2.2/topics/http/shortcuts/

因此,您应该只传递一个包含所有所需数据的字典对象。 它可以有嵌套对象。

def home(request):
context_data = {'title': 'Home',
'post': posts }
return render(request, 'blog/home.html', context_data)

相关内容

  • 没有找到相关文章

最新更新