如何获取带有相同标签的文章,以便在模板中显示这些文章?

时间:2019-07-06 22:36:28

标签: django django-views tags python-3.7

我是Django的新手,所以感谢您的帮助。 我有一个Article模型,并且我想通过为每个文章分配标签来显示相关/相似的文章。

我尝试在views.py中创建一个从self(该特定文章)继承的函数/过滤器,并过滤掉具有相同标签但没有成功的文章。

where lastmodified = getdate()

import numpy as np 
import matplotlib.pyplot as plt

T = np.linspace(0.01, 4.5, 0.01)

for i in T:
    N = (2.63*10**-16)*((2.71828**(6.93*i))-1)+((4.05*10**-6)*i)

plt.plot (N,T) 
plt.show()

from django.db import models

class Article(models.Model):
  title = models.CharField(max_length=200, blank=True)
  thumbnail = models.ImageField(max_length=200, blank=True)
  tag = models.CharField(max_length=200, blank=True)

因此,每当我尝试使用此过滤器时,都不会得到结果。

1 个答案:

答案 0 :(得分:0)

我认为related_articles函数应该在模型类上。

from django.db import models

class Article(models.Model):
  title = models.CharField(max_length=200, blank=True)
  thumbnail = models.ImageField(max_length=200, blank=True)
  tag = models.CharField(max_length=200, blank=True)

  def related_articles(self):
    tagged = Article.objects.filter(tag=self.tag).exclude(pk=self.pk)

假设您的视图如下:

def articles(request):
    articles = Articles.objects.all()
    context = dict(articles=articles)

    return render(request, 'app/articles.html', context)

您可能会有这样的模板:

{% if articles|length %}
  {% for article in articles %}
  <div>
    <img src="{{ article.thumbnail.url }}">
    <span>{{ article.title }}</span>
    {% for related_article in article.related_articles %}
        <span>{{ related_article.title }}</span>
    {% endfor %}
  </div>
  {% endfor %}
{% endif %}