Django如何从视图中的另一个模型获得字段?

2024-09-28 23:03:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想这个问题已经被问过几次了,但是问题和答案都不那么清楚。如果你能让标题问题或下面的例子更清楚。请这样做。在

示例: 我有一个果园,我的果园里有许多苹果树,这些苹果树有苹果。问题是使用我的模型:

  1. 如何获得给定字段中的苹果数?在
  2. 在给定的田地里生产的所有苹果的总质量?在

型号

class Field(models.Model):
   size = models.PositiveIntergerField()
   max_tree_number = models.PositiveIntergerField()

class Tree(models.Model):
   field = models.ForeignKey(Field)
   date_of_planting = models.datefield(editable=False)
   variety = models.CharField(max_length=200)

class Apple(models.Model):
   tree = models.ForeignKey(Tree)
   mass = models.PositiveIntergerField()

视图

^{pr2}$

谢谢你抽出时间


Tags: 答案苹果tree标题fieldmodelmodelsmax
1条回答
网友
1楼 · 发布于 2024-09-28 23:03:59

你可以用苹果的数量和质量来查询。在

from django.db.models import Count, Sum

def get_queryset(self):
    queryset = super(FieldView, self).get_queryset()
    queryset = queryset.annotate(num_apples=Count('tree__apple'), apple_mass=Sum('tree__apple__mass'))
    return queryset

然后,当您循环查询集时,您可以访问带注释的字段。在

^{pr2}$

请注意,您不必向get_context_data中的上下文添加任何内容,因此您可以将其从视图中删除。在

相关问题 更多 >