【问题标题】:How to get into the details view using any primary key from a template to another template?如何使用从模板到另一个模板的任何主键进入详细信息视图?
【发布时间】:2019-06-27 19:15:44
【问题描述】:

我使用函数制作了一个列表视图和详细视图..在这里我得到了查询集..我在列表视图中获取了查询数据,但我在模板中的列表视图中获取了查询数据在 url 部分中传递 pk..

我将league/<int:pk>/ 放在详细视图的路径中,并在列表视图模板中将{% url 'league-detail' match.pk %} 放在href...bt 中发生错误:league() 得到了一个意外的关键字参数pk

网址:

path('leagues/', views.league, name='league'),
path('league/<int:pk>/', views.league_detail, name='league-detail'),

浏览量:

match = Match.objects.all()

列表视图和详细视图相同

模板:

{% url 'league-detail' match.pk %}

但错误是:

league() got an unexpected keyword argument 'pk'

我需要通过使用查询集获取实际数据转到league-detail 模板

【问题讨论】:

    标签: django django-templates django-views


    【解决方案1】:

    我不能完全理解你的问题,但出现意外参数错误的原因主要是你试图在 url 中传递“match.pk”而不在 urls 文件中定义它

    所以它可能是这样的:

    path('league/<int:pk>', views.league_detail, name='league-detail')
    

    然后在league_detail函数中,

    def league_detail(pk):
         // code goes here
    

    我也不确定,但是在这样做之后,您可能需要像这样在模板中传递 pk:

    {% url 'league-detail' pk=match.pk %}
    

    【讨论】:

    • 它正在工作,但是每个主键查询的查询数据都不能正常工作...我获取了所有查询数据,但我需要获取特定主键的查询数据..顺便说一句谢谢回答我...@rojagtap
    • 关于特定主键的数据,您可以使用 match = get_object_or_404(Match, pk=pk) 之类的内容。请注意,如果数据库中不存在具有给定主键的对象,则会引发 404 not found 错误。
    • 是的......但是这个对象不可迭代......我需要迭代数据......这怎么可能? @rojagtap
    • 好吧,我不认为 get_object_or_404 返回一个查询集进行迭代,我的意思是它只是一个普通对象,其 pk 等于您要求的 pk
    • 但是这个模型类有很多字段,也有很多字段数据,,这就是为什么需要迭代它@rojagtap
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多