gpt4 book ai didi

python - Django - 从外键获取数据

转载 作者:行者123 更新时间:2023-11-30 22:39:20 24 4
gpt4 key购买 nike

我正在开发一个 Django 项目,并尝试为我的数据创建一些链接模型,这在我看来是有效的,但我似乎无法弄清楚如何访问链接数据。

class One(models.Model)
name = models.CharField(max_length=50)
list = models.ArrayField(models.CharField(max_length=50), blank=True)

def __str__(self):
return self.name

class Many(models.Model)
name = models.CharField(max_length=50)

related = models.ForeignKey(One, null=True, blank=True)

def __str__(self):
return self.name

这是我建立的一般关系。

我想做的是,在模板中可以访问所有“Ones”的列表,并且通过每个“Ones”,可以访问每个“Many”及其相关属性。我可以看到如何访问单个“一个”的属性,但不知道如何传递所有这些属性及其相关的“许多”模型以及每个模型的相关属性。本质上,我想要的输出会有一个包含 One 的下拉列表,当提交此列表时,一些 Javascript 将使用“Many”模型中的列表来执行一些操作。

如有任何建议,我们将不胜感激。

最佳答案

如果您已经拥有 One 模型类的对象,您可以使用 many_set 访问 many 对象(引用: backward relations ) :

{% for one_obj in one_objs %}
{% for m_obj in one_obj.many_set.all %}
# do stuff with m_obj here
{% endfor %}
{% endfor %}

这里需要注意的一件重要事情是,这将为每个 m_obj 执行一个数据库查询。为了提高效率,您可以在 View 中使用 one_objs 预取 many_set

在您看来,使用 prefetch_related :

one_objs = One.objects.all().prefetch_related('many_set')

关于python - Django - 从外键获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43187327/

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