我正在开发一个 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
Run Code Online (Sandbox Code Playgroud)
这是我建立的一般关系。
我想做的是,在模板中可以访问所有“Ones”的列表,并且通过每个“Ones”,可以访问每个“Many”及其相关属性。我可以看到如何访问单个“一个”的属性,但不知道如何传递所有这些属性及其相关的“许多”模型以及每个模型的相关属性。本质上,我想要的输出会有一个包含 One 的下拉列表,当提交此列表时,一些 Javascript 将使用“Many”模型中的列表来执行一些操作。
任何建议将不胜感激。
如果您已经拥有模型类的对象One,您可以many使用以下方式访问对象many_set(参考:后向关系):
{% for one_obj in one_objs %}
{% for m_obj in one_obj.many_set.all %}
# do stuff with m_obj here
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这里需要注意的一件重要事情是,这将为每个m_obj. 为了提高效率,您可以在视图中预取many_setwith 。one_objs
在您看来,使用prefetch_related:
one_objs = One.objects.all().prefetch_related('many_set')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30458 次 |
| 最近记录: |