Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django中访问视图之外的模型?_Python_Django - Fatal编程技术网

Python 如何在Django中访问视图之外的模型?

Python 如何在Django中访问视图之外的模型?,python,django,Python,Django,我正在创建一个数据库站点,其中一个需要的功能是在导航栏中有一个按钮,该按钮将允许用户访问模型中的随机对象。Django Cookbook提供了我实现的功能 但是,我似乎无法从导航栏调用此函数,因为导航栏位于一个单独的html文件中,该文件包含在{%block content%}上方的中,该文件允许它出现在网站的每个页面上。但是,这意味着它从未看到模型对象本身,因此我无法使用导航栏中的{{object.get_random}}访问函数 我的一个想法是在导航栏中使用这样的链接 <a href=

我正在创建一个数据库站点,其中一个需要的功能是在导航栏中有一个按钮,该按钮将允许用户访问模型中的随机对象。Django Cookbook提供了我实现的功能

但是,我似乎无法从导航栏调用此函数,因为导航栏位于一个单独的html文件中,该文件包含在
{%block content%}
上方的
中,该文件允许它出现在网站的每个页面上。但是,这意味着它从未看到模型对象本身,因此我无法使用导航栏中的
{{object.get_random}}
访问函数

我的一个想法是在导航栏中使用这样的链接

<a href="{% url 'roma:category_list.object.get_random.get_absolute_url' %}">Random Category</a>

其中,
category\u list
是将模型传递给它的视图。我希望从模型中获取一个对象,然后是
get_random
函数,最后是
get_random
函数返回的对象的url。 这显然是行不通的。
是否有一种解决方案允许我访问navbar html中的函数?

在呈现模板时,我不会进行随机化,而是创建一个带有url(如“/random”)的专用视图链接。调用该url时,视图可以执行随机操作,并将您重定向到随机模型。

在呈现模板时,我不会执行随机操作,而是使用类似“/random”的url链接到专用视图。调用该url时,视图可以进行随机化并将您重定向到随机模型。

如果您遇到“此模板需要包含在特定上下文中”的问题,则应使用。如果您遇到“此模板需要包含在特定上下文中”的问题,则应使用。