gpt4 book ai didi

python - Django 模型 : Defining a method on a list of instances of a model

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

我有以下模型

class Article(models.Model):
url = models.URLField(max_length=200, unique=True, null=False)
title = models.CharField(max_length=200, unique=False, null=False)

def distinct_attrs(self):
pks = self.child_set.all().values_list('fields__pk', flat=True)
distinct_attrs = ChildReferences.objects.filter(pk__in=pks).distinct()
return distinct_attrs

现在我想迭代article_list以获取文章子模型中字段的不同值。因此我定义了一个distinct_attrs方法。但是,它只能按如下方式工作:

{% for article in article_list %}
{% for field in article.distinct_attrs %}
{{ field.value }}

但是,这为每篇文章提供了不同的值,但为整个文章列表提供了不同的值。我需要做的是:

{% for field in article_list.distinct_attrs %}
{{ field.value }}

事实上,我想从article_list中获取ChildReferences中某个字段的唯一值列表

最佳答案

我成功了。我完全删除了 unique_attrs 方法,并修改了我的通用类 View :

class MyView(generic.ListView):
template_name = '***'
context_object_name = 'article_list'

def get_queryset(self):
return Article.objects.filter(***)

def get_context_data(self, **kwargs):
context = super(MyView, self).get_context_data(**kwargs)
context['distinct_attrs'] = ChildReferencing.objects.filter(***).distinct()
return context

所以现在我只需在模板上执行以下操作:

{% for attr in distinct_attrs %}
{{ attr.value }}
{% endfor %}

关于python - Django 模型 : Defining a method on a list of instances of a model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24109680/

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