我想将具有给定模型的相关消息列表移动到视图中的变量 - 这是“相关”字段。 目前,我正在获取网站上显示的所有对象。
请提示,非常感谢。
型号:
class News(models.Model):
title = models.CharField(max_length=500)
subtitle = models.CharField(max_length=1000, blank=True)
text = models.TextField()
link_title = models.CharField(max_length=500)
date = models.DateField(null=True)
related = models.ManyToManyField('self', symmetrical=False, blank=True)
class Meta:
verbose_name_plural = 'news'
ordering = ['-date']
查看:
class NewsDetailView(DetailView):
model = models.News
context_object_name = 'news_item'
def get_context_data(self, **kwargs):
context = super(NewsDetailView, self).get_context_data(**kwargs)
context['related_news'] = models.News.objects.values_list('related', flat=True)
return context
答案 0 :(得分:0)
您应该使用self.object
为您提供的DetailView
变量:
context['related_news'] = self.object.related.all() # [1]
这样您就可以在模板中迭代元素:
{% for related_item in related_news %}
{{ related_item.title }}
{% endfor %}
[1] self.object
由get_context_data()
被称为