为了账号安全,请及时绑定邮箱和手机立即绑定

如何在views.py django中按名称获取对象

如何在views.py django中按名称获取对象

holdtom 2023-08-08 16:18:13
如何使用名称而不是 id 获取views.py 中的对象。def StockSummaryPage(request, title):    stocks_data = get_object_or_404(Stock, string=title)    return render(request, 'stocks/stock_summary_page.html', {'stocks_data':stocks_data})这是我的views.py 和stock_data = get_object_or_404(股票,字符串=标题)我们使用 pk= stock_id 但我想按标题来做。所以帮助我
查看完整描述

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

您可以通过对象的任何模型字段来获取对象。

title假设您的 Stock 中有一个名为的字段model,并假设您将标题传递给您的视图。

stocks_data = get_object_or_404(Stock, title=title)

请注意,如果您通过不唯一的字段获取对象,您将收到错误:get() returned more than one Model -- it returned 54!
在这种情况下,使用get_list_or_404(Stock, title=title)它将返回 .filter() 的结果。 Django 快捷函数:get_list_or_404()


查看完整回答
反对 回复 2023-08-08
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

这里我们假设该字段为title。


第一种方法:使用filter()


def StockSummaryPage(request, title):

    stocks_data = Stock.objects.filter(title=title)

    return render(request, 'stocks/stock_summary_page.html', {'stocks_data':stocks_data})

第二种方法:使用get_object_or_404


def StockSummaryPage(request, title):

    stocks_data = get_object_or_404(Stock, title=title)

    return render(request, 'stocks/stock_summary_page.html', {'stocks_data':stocks_data})


查看完整回答
反对 回复 2023-08-08
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

这也可以通过另一种方式解决。我刚刚找到这个方法


def StockSummaryPage(request, title):

        context = {}

        # add the dictionary during initialization

        context["data"] = Stock.objects.get(title=title)


        return render(request, "stocks/stock_summary_page.html", context)

然后你可以使用 html 获取数据


数据


关键字喜欢


data.title

data.name

ETC


查看完整回答
反对 回复 2023-08-08
  • 3 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信