Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.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模板url未正确获取参数_Python_Html_Django - Fatal编程技术网

Python Django模板url未正确获取参数

Python Django模板url未正确获取参数,python,html,django,Python,Html,Django,我能够使用模板标记在模板中打印正确的对象pk,但是当我在url参数中使用相同的代码时,它不会显示出来 我试图使用多对多关系的第一个结果pk来创建链接到该页面的url参数。当我手动输入主键时,它工作,但当我使用category.quote\u set.first.pk时,它不工作 “类别”是所有类别的查询集,这些类别与引号有多对多关系。 {{category.quote_set.first.pk} url文件具有路径('monitor/',views.QuoteView.as_view(),na

我能够使用模板标记在模板中打印正确的对象pk,但是当我在url参数中使用相同的代码时,它不会显示出来

我试图使用多对多关系的第一个结果pk来创建链接到该页面的url参数。当我手动输入主键时,它工作,但当我使用
category.quote\u set.first.pk时,它不工作

“类别”是所有类别的查询集,这些类别与引号有多对多关系。
{{category.quote_set.first.pk}

url文件具有
路径('monitor/',views.QuoteView.as_view(),name='quote'),

转到该页时,会显示一个错误,该错误与未找到参数“(“”,)”的“quote”相反。尝试了1个模式:[“座右铭\\/(?P[0-9]+)\\/$”]
我相信这是因为url是先创建的,category.quote_set.first.pk是在页面之后创建的,但这只是我的理论

页面的视图:

class CategoryView(generic.ListView,ContextMixin):
    template_name = 'mottos/category.html'
    context_object_name = 'motto_list'

    def get_queryset(self):
        return Quote.objects.all().annotate(score=Avg('vote__score')).filter(categories__slug=self.kwargs['cat

egory'])。按('-score')排序。

试试这样的方法

{% for quote in quote_list %}
   <p>
      <a href="{{ quote.get_absolute_url }}"></a>
   </p>
{% endfor %}
然后在模板中添加此

{% for quote in quote_list %}
   <p>
      <a href="{% url 'quote' quote.id %}"></a>
   </p>
{% endfor %}
{%用于报价单中的报价单\u列表%}

{%endfor%}
我可以通过使用

{% for quote in category.quote_set.all|slice:"0:1" %}
 <p><a href="{% url 'mottos:quote' quote.pk %}"></a></p>
% endfor %}
{%用于类别中的引号。引号_集。所有|切片:“0:1”%}

%endfor%}

因为我只想要第一个报价,所以我使用slice:“0:1”只获取第一个报价,然后使用该结果的主键。

当您将鼠标悬停在URL上时显示了什么?添加了错误消息和我的理论,谢谢您添加查看功能吗?同时在浏览器中的url上悬停并查看页面底部,您的url显示了什么?添加了视图。并且没有链接,因为页面最终会出现错误页面。
{% for quote in category.quote_set.all|slice:"0:1" %}
 <p><a href="{% url 'mottos:quote' quote.pk %}"></a></p>
% endfor %}