django 视图中的 context_object_name 是什么?
我是 django 的新手。现在我正在学习使用基于类的通用视图。 有人可以解释一下 context_object_name 属性的目的和用途吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我是 django 的新手。现在我正在学习使用基于类的通用视图。 有人可以解释一下 context_object_name 属性的目的和用途吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
如果您不提供“context_object_name”,您的视图可能如下所示:
但如果您提供像{“context_object_name”:“publisher_list”},那么您可以编写视图如下:
这意味着您可以更改原始参数名称(object_list)通过“context_object_name”进入任何名称以供您查看。
希望有帮助:)
If you do not provide "context_object_name", your view may look like this:
But if you provide like {"context_object_name": "publisher_list"}, then you can write view like:
That means you can change the original parameter name(object_list) into any name through "context_object_name" for your view.
Hope that help:)
好吧,我自己已经搞定了! :)
这只是一个人类可以理解的变量名称,可以从模板访问
https://docs.djangoproject.com/en/1.10/topics/class-based-views/generic-display/#making-Friendly-template-contexts
Ok, I've got it by myself! :)
It's just a human-understandable name of variable to access from templates
https://docs.djangoproject.com/en/1.10/topics/class-based-views/generic-display/#making-friendly-template-contexts
让我们假设以下 posts/views.py:
在第一行中我们导入 ListView,在第二行中我们需要显式定义我们正在使用的模型。在视图中,我们对 ListView 进行子类化,指定模型名称并指定模板引用。 ListView 在内部返回一个名为 object_list 的对象,我们希望在模板中显示该对象。
在我们的模板文件 home.html 中,我们可以使用 Django 模板语言的 for 循环来列出 object_list 中的所有对象
为什么是 object_list? 这是 ListView 返回的变量名称对我们来说。
让我们看看我们的 templates/home.html
你看到上面的 object_list 了吗?是不是一个很亲切的名字?
为了使其更加用户友好,我们可以使用 context_object_name 提供显式名称。
这有助于其他阅读代码的人了解模板上下文中的变量是什么,而且更容易阅读和理解。
因此,让我们回到 posts/views.py 并通过添加下面一行来更改它:
所以我们的新views.py 现在看起来像这样:
现在我们不要忘记更新我们的模板:
您可以保留为 object_list ,它仍然有效,但你明白了。
Lets assume the following posts/views.py:
On the first line we’re importing ListView and in the second line we need to explicitly define which model we’re using. In the view, we subclass ListView, specify our model name and specify our template reference. Internally ListView returns an object called object_list that we want to display in our template.
In our templates file home.html we can use the Django Templating Language’s for loop to list all the objects in object_list
Why object_list? This is the name of the variable that ListView returns to us.
Lets look at our templates/home.html
You see the object_list above? It is not a very friendly name?
To make it more user-friendly, we can provide instead an explicit name using context_object_name.
This helps anyone else reading the code to understand what is variable in the template context, plus it is much easier to read and understand.
So let's go back to our posts/views.py and change it by adding the one line below:
So our new views.py looks like this now:
And let's not forget to update our template now:
You could have left as object_list and it would still work, but you get the idea.
考虑这 2 个代码片段
A. 使用基于函数的视图:
B. 使用基于类的视图
在上述两种方法中,您的上下文变量将是“product_list”,您的 HTML 将是,
Consider these 2 code snippet
A. Using function based view:
B. Using class based view
In both the above method your context variable will be "product_list", and your HTML will be,