我想要列出與故事相關聯的文章列表,以便在故事專用的行上呈現故事。目前該模板僅返回來自上一個故事的文章在三個不同的行上。編寫和理解的代碼是:將query_set的列表呈現爲html模板上的行
許多文章可以屬於一個故事。 /models.py
class Story(models.Model):
title = models.CharField(max_length=200, default= "")
description = models.TextField()
publication_date = models.DateTimeField()
class Article(models.Model):
feed = models.ForeignKey(Feed)
title = models.CharField(max_length=200)
url = models.URLField()
publication_date = models.DateTimeField()
story = models.ManyToManyField(Story, default=None, blank=True)
使用查詢,得到所有story_ids的列表。如果story_id_lst中的條目等於文章中的story_id,則將該故事附加到行列表中。
/views.py
def articles_list(request):
articles = Article.objects.all()
story_id_lst = articles.values_list('story').distinct()
for entry in story_id_lst:
rows = articles.filter(story=entry)
運行在shell代碼返回三個列表,一個空的,一個與匹配的故事1和一個與匹配的所有文章,故事2.我認爲這個問題的所有文章在下面的代碼中。
/views.py
return render(request, 'news/articles_list.html', {'rows': rows})
/articles_list.html
<div class="container" style="background-color: #DCDCDC; border-radius: 25px;">
<div class="row">
{% for row in rows %}
<div class="col-md-12">
{% for entry in row %}
<div class="container-fuild">
<div class="col-md-4" >
<h2>{{entry.title}}</h2>
<div>
<p><a href="{{entry.url}}" target="_blank" class="btn btn-primary">View Details</a></p>
</div>
</div>
</div>
{% endfor %}
</div>
{% endfor %}
</div>
</div>
您的看法是這樣FUBAR我甚至不知道從哪裏開始(除了前行似乎是錯誤的如果你想實現「許多文章可以屬於一個故事」(你已經實現了「一篇文章可以屬於這個文章到0或更多的故事「。 – thebjorn
我不應該在我的視圖中使用查詢,或者不將查詢放置在列表中?你能指出我如何清理/修復它嗎? – CornCob