Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Django 在我的jinja2模板中将url用作变量?_Django_Django Templates_Jinja2 - Fatal编程技术网

Django 在我的jinja2模板中将url用作变量?

Django 在我的jinja2模板中将url用作变量?,django,django-templates,jinja2,Django,Django Templates,Jinja2,是一种在我的模板中使用slug的方法吗 我的URL中有: path(“cats/check//lista”,ObjetoListView.as_view(),name='posesiones_consulta'), 如何作为变量访问int:pk 我想评估一下: {% if cat.mom.id == pk %} 您可以使用以下命令将其传递到上下文: class ObjectoListView(ListView): # … def get_context_d

是一种在我的模板中使用slug的方法吗

我的URL中有:

path(“cats/check//lista”,ObjetoListView.as_view(),name='posesiones_consulta'),
如何作为变量访问int:pk

我想评估一下:

{% if cat.mom.id == pk %} 

您可以使用以下命令将其传递到上下文:

class ObjectoListView(ListView):

    # …

    def get_context_data(self, *args, **kwargs):
        return super().get_context_data(
            *args,
            pk=self.kwargs['pk'],
            **kwargs
        )
类ObjectoListView(ListView):
# …
def获取上下文数据(self、*args、**kwargs):
返回super()。获取上下文数据(
*args,
pk=self.kwargs['pk'],
**夸尔斯
)
但是,如果要筛选列表,则应在数据库级别执行此操作,例如:

class ObjectoListView(ListView):

    # …

    def get_queryset(self, *args, **kwargs):
        return super().get_queryset(*args, **kwargs).filter(
            mom__pk=self.kwargs['pk']
        )
类ObjectoListView(ListView):
# …
def get_queryset(self、*args、**kwargs):
return super().get_queryset(*args,**kwargs).filter(
mom\uuu pk=self.kwargs['pk']
)

在模板中进行过滤不是一个好主意,因为这样数据库将返回所有记录,从而增加数据库和应用程序之间的带宽,而且在数据库级别进行过滤(几乎)总是比在视图或模板中进行过滤快。

谢谢,但是,如果我计划使用我的电脑而不是互联网,哪一个更快呢?@TommydoNascimiento:还是一个数据库。数据库使用索引,因此通常可以在O(logn)时间内过滤,而模板/视图则需要线性时间。如果对象的数量增加(1'000+),那么页面需要相当长的时间才能回答,从而可以看出差异。