Django 在我的jinja2模板中将url用作变量?
是一种在我的模板中使用slug的方法吗 我的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
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+),那么页面需要相当长的时间才能回答,从而可以看出差异。