gpt4 book ai didi

python - Django 根据 GET 请求从数据库中查询过滤后的数据

转载 作者:行者123 更新时间:2023-11-28 21:40:44 25 4
gpt4 key购买 nike

我正在学习django,想根据用户的请求查询数据。这是我的代码:

模型.py:

class Airline(models.Model):
name = models.CharField(max_length=10, blank=True, null=True)
code = models.CharField(max_length=2, blank=True, null=True)

class FinancialData(models.Model):
airline = models.ForeignKey(Airline)
mainline_revenue = models.DecimalField(max_digits=7, decimal_places=2)
regional_revenue = models.DecimalField(max_digits=7, decimal_places=2)
other_revenue = models.DecimalField(max_digits=7, decimal_places=2)
total_revenue = models.DecimalField(max_digits=7, decimal_places=2)

网址.py:

urlpatterns = [
url(r'^airline/(?P<pk>\d+)/$', views.airlinesdata, name='airline_data'),
]

views.py:

def airlinedata(request):
data = FinancialData.objects.filter(pk=airline_id)
return data

我不确定我应该在 views.py 中写什么,当用户选择例如 airline_id 3 时,它会检索 FinancialData从该航空公司的数据库中仅使用外键?

最佳答案

如果 Airline 是 FinancialData 的外键,则 Airline 与 FinancialData 之间存在一对多关系。这意味着:

  obj = Airline.objects.get(pk=3)

会给你一个单一的对象。这个对象有很多附加到它的金融数据,你可以通过说:

  financial_data = obj.financial_data_set.all() //Django has _set for all ForeignKey relationship.

一旦您的 View 将 pk 作为参数,您就可以从财务数据查询航空公司,反之亦然:

   def airlinedata(request, pk):
financial = FinancialData.objects.filter(airline__pk=pk)
# Notice the double underscore, it's called field lookup. You can lookup fields in other model from a model using it.
# If u get your airline data first however by using:
airline = Airline.objects.get(pk=pk)
# You can obtain all financial data attached to it thus:
financials = airline.fiancial_data_set.all()

希望对您有所帮助!

关于python - Django 根据 GET 请求从数据库中查询过滤后的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45259582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com