【发布时间】:2013-02-28 10:05:46
【问题描述】:
对于 Django 项目,我需要将两个部件列表合二为一。
models.py:
class UserBuild(models.Model):
project = models.ForeignKey(Project)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
part = models.ForeignKey(Parts)
part_quantity = models.IntegerField(max_length=5, null=True, blank=True)
suggested_quantity = models.IntegerField(
max_length=5, null=True, blank=True
)
views.py:
def CombineProjects(request, template_name='combined_projects.html'):
...
build_set = UserBuild.objects.values(
#'pk',
#'project__pk',
'part__number',
'part__part_type__name',
'part__price',
'part__description',
'part__category__name'
).filter(
project__in=projects
).order_by('part__category', 'part__part_type').annotate(total=Sum('part_quantity'))
基本上在这里,我想对所有相同的部分进行分组并将它们的数量相加。如上所述,但如果我取消注释 pk 或 project__pk 参数,则不再对这些部分进行分组(我假设是因为即使部分相同,它们也是可变的)。
有没有什么方法可以让我保持分组但也包括 pk 和 project__pk 值?
【问题讨论】:
-
在 pk 上分组没有意义......它在这种情况下是独一无二的,所以没有什么可以总结或分组的。你到底想数什么?
-
我想将相同数量的零件数量相加,但我还需要其他值可用。我实际上不需要
pk,但我确实需要project__pk。在我取消注释project__pk之前,一切都按我的意愿运行。
标签: django django-models django-views django-queryset