gpt4 book ai didi

python - 在 Django 中获取二阶数据库信息的 Djangonic 方法?

转载 作者:太空宇宙 更新时间:2023-11-03 18:58:52 32 4
gpt4 key购买 nike

我正在摆弄我的第一个 Django 网站,到目前为止一切进展顺利。我现在面临着从数据库获取一些信息的挑战。我的模型如下所示:

class Countries(models.Model):
country = models.CharField(max_length=100)
def __unicode__(self):
return self.country

class OrganisationTypes(models.Model):
organisation_type = models.CharField(max_length=100)
def __unicode__(self):
return self.organisation_type

class Organisations(models.Model):
organisation_name = models.CharField(max_length=200)
organisation_type = models.ForeignKey(OrganisationTypes)
country_of_origin = models.ForeignKey(Countries)
def __unicode__(self):
return self.organisation_name

class Locations(models.Model):
organisation = models.ForeignKey(Organisations)
country_of_location = models.ForeignKey(Countries)
tel_nr = models.CharField(max_length=15)
address = models.CharField(max_length=100)
def __unicode__(self):
return '%s - %s - %s - %s' % (self.organisation, self.country_of_location, self.tel_nr, self.address)

我现在想要显示一个位置列表,其中要显示organization_name 和country_of_origin。为了实现这一点,我编写了以下函数:

def organisation_locations(requests, organisation_id):
org = Organisations.objects.get(id=organisation_id)
location_list = Locations.objects.filter(organisation=organisation_id).order_by('country_of_location')
output = '<br />'.join([str(loc.organisation)+' from '+str(org.country_of_origin) for loc in location_list])
return HttpResponse(output)

这工作正常,但似乎不是正确的方法。由于位置表在组织表中具有外键,而组织表中又在国家/地区表中具有​​外键,因此我有一种模糊的感觉,Django 可以在一次“查询”或查找中完成此操作。

我的这种感觉是否正确,或者我的方式确实是正确的做法?欢迎所有提示!

最佳答案

你不能这样做吗:

location_list = Locations.objects\
.filter(organisation=organisation_id)\
.order_by('country_of_location')
output = '<br />'.join([str(loc.organisation)+' from '+str(loc.organisation.country_of_origin) for loc in location_list])

组织查询不是必需的。您可以像这样访问组织:localization.organization

代码中不是 Djangonic 的是响应。您应该有一个模板并返回 render_to_response :)

关于python - 在 Django 中获取二阶数据库信息的 Djangonic 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16549738/

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