gpt4 book ai didi

python - Djangoviews.py,我想从我的对象渲染ManyToManyField的所有属性

转载 作者:行者123 更新时间:2023-12-01 04:08:00 24 4
gpt4 key购买 nike

目前,我正在选择框中呈现国家/地区列表,以便有一个类别来对我的文章进行排序。

每篇文章都有一个区域,在我的模型中定义如下:

class Article(ModelMeta, TranslatableModel):
regions = models.ManyToManyField(Country, verbose_name=_('Country of the article'),
blank=True, null=True,
related_name='regions_press_article')

国家是一个外部插件。

但问题是,因为它是一个类别,所以我希望国家/地区有所不同,这就是我在views.py中所做的:

        region_for_articles = Article.objects.values_list('regions__pk',
flat=True).distinct()
context['regions_list'] = region_for_articles

在我的数据库中,article_region 仅具有区域 ID,并使用此 ID 找到相应的名称(通过值列表请求,region__name)。

所以,很明显,通过在模板中渲染时执行此操作

{% for region in regions_list %}
{{ region }}
{% endfor %}

我只能访问区域名称。

这是我的问题,我还需要子弹。但我不知道如何从我的角度请求它!

如何为我的模板获取可利用的对象,该对象必须与每篇文章的数据库中的内容相对应(您不想按没有文章链接到的区域过滤文章),这将允许我有 slug + 名称。

如果有人能给我提供线索,我将不胜感激:)

最佳答案

一般来说,除非您非常需要优化,否则您应该始终将完整的模型对象传递给模板。

我的经验法则始终是从您想要的模型开始:因为您想要区域,所以从定义它们的模型开始(奇怪地称为国家/地区)。您要查找与文章关联的所有区域,因此只需查询即可:

 region_for_articles = Country.objects.exclude(regions_press_article=None)

关于python - Djangoviews.py,我想从我的对象渲染ManyToManyField的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35320390/

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