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

时间:2020-09-16 08:26:04

标签: python django

如何使用名称(而不是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和

stocks_data = get_object_or_404(股票,字符串=标题)

我们使用pk = stock_id,但我想按标题进行操作。所以救救我

3 个答案:

答案 0 :(得分:1)

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

假设您的股票title中有一个名为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 Shortcut Functions: get_list_or_404()

答案 1 :(得分:1)

在这里,我们将该字段假定为cls1.varA

第一种方法:使用0

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})

答案 2 :(得分:0)

这也可以用其他方式解决。我就是这样找到的

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

相关问题