0

我来自 CakePHP,刚开始玩 Django 框架。在 CakePHP 中,我习惯使用 pr() 将所有返回的数组直接打印到网页上。例如:

  • 控制器向视图吐出 $result,我使用 pr($result),它会在网页上打印出所有内容,因此我知道如何从视图中遍历 $result。
  • 一个表单 POST 一个 $request 到控制器,我使用 pr($request) 在控制器中处理它之前查看发送的内容。在我点击提交表单后,$request 的内容将立即显示在网页上。

我想知道我是否可以在 django 中做同样的事情,而不是去 shell 并尝试 pprint (或者我可以只使用 pprint 打印到网络吗???)这是一个关于我的非常简单的例子谈论: app_name/views.py:

def detail(request, soc_id):
    soc = get_object_or_404(Soc, pk=soc_id)
    return render(request, 'socs/detail.html', {'soc': soc})

我怎样才能清楚地看到“soc”中的内容。在 cakephp 中,我可以直接在此处使用 pr($soc),它将显示在 detail.html 页面上。

我已经尝试过了,但它没有用(我确定它是基本的,但我只是新手)

import pprint
def detail(request, soc_id):
    soc = get_object_or_404(Soc, pk=soc_id)
    pprint.pprint(soc)
    return render(request, 'socs/detail.html', {'soc': soc})

我花了两天时间研究,但我找不到答案。我希望你们中的一个可以帮助这个新手。

4

1 回答 1

0

您尝试打印的方式将在运行 Django 服务器的终端中显示打印。如果您只需要快速查看它,请检查那里。

如果要将值输出到呈现的页面,则必须使用模板标记将其包含在模板中。看起来您将{'soc': soc}其作为上下文发送到您的模板。因此,您应该能够在模板中使用它。因此,在您的模板 ( socs/detail.html) 中,只需添加{{ soc }}某处,它就会打印出该值。模板可以完全访问该对象,因此如果您想要特定的东西,您也可以打印它(如{{ soc.id }})。

如果您想在不自己指定所有不同字段的情况下查看对象中的所有内容,请发送OBJECT.__dir__. 例如,为此,您将{'soc': soc.__dir__}作为上下文发送。请记住,这可能不应该用于您的检查以外的任何事情。

如果您想了解有关 Django 模板的更多信息,请查看语法等

于 2016-09-20T19:07:49.677 回答