目前,我正在一个选择框中呈现国家/地区列表,以便有一个类别来对我的文章进行排序。
每篇文章都有一个区域,在我的模型中定义如下:
class Article(ModelMeta, TranslatableModel):
regions = models.ManyToManyField(Country, verbose_name=_('Country of the article'),
blank=True, null=True,
related_name='regions_press_article')
Country是一个外部插件。
但问题是,因为它是一个类别我希望国家与众不同,这就是我在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 %}
我只能访问区域名称。
这是我的问题,我也需要slu .. 但我不知道如何从我的角度提出要求!
如何获取我的模板的可利用对象,该对象必须与每篇文章的DB中的内容相对应(您不希望按照没有文章链接的区域过滤文章)我有slug +名字。
如果任何人有线索让我看,我会很感激:)
答案 0 :(得分:2)
通常,除非您非常需要优化,否则应始终将完整模型对象传递给模板。
我的经验法则总是从你想要的模型开始:因为你想要区域,从定义它们的模型开始(奇怪的叫做Country)。您在与文章相关联的所有区域之后,所以只需查询:
*