已经解决了有关此主题的问题,该问题已解决(将几个类输出到 1 个 url 地址)。但对我来说,仍然不清楚如何只显示一定数量的文章。
我需要这样做,以便仅显示第一种类型(钻机)的 3 个最新型号和另一种类型(文章)的 1 个最新型号。我知道需要通过分页器做什么,但我不知道怎么做。我希望能得到你的帮助)
这是views.py文件:
from django.shortcuts import render
from rigs.models import Rig
from news.models import Article
from django.core.paginator import Paginator
def main_page(request):
articles = Article.objects.all().order_by('-date')
article = Paginator(articles, 1)
rigs = Rig.objects.all().order_by('-date')
rig = Paginator(articles, 3)
response_data = {
'articles': articles,
'rigs': rigs,
}
return render(request, 'main_page/main_page.html', response_data)
这是带有模板的 html 文件:
<div class="container">
<div class="row">
{% for post in rigs %}
<div class="col-xs-1 col-md-6 col-lg-4">
<div class="card">
<div class="card-img-top"><a href="{% url 'rig_detail' post.id %}"><img src="{{ post.image.url }}"></a></div>
<div class="card-body">{{ post.title }}</div>
<div class="card-footer">
<div class="card-footer-1 float-left">
<div class="layer-1"></div>
{% if post.price > 0 %}
<p class="mx-auto font-weight-bold font-italic">${{ post.price }}</p>
{% else %}
<p class="mx-auto font-weight-bold font-italic">Бесплатно</p>
{% endif %}
</div>
<div class="float-right">
{% if post.price > 0 %}
<a href="#" class="btn btn-success float-right align-middle ml-2 shadow-sm"><img src="media\rigs\shopping-cart.png" width="20px" height="20px"></a>
<a href="#" class="btn btn-warning float-left align-middle shadow-sm">Купить</a>
{% else %}
<a href="#" class="btn btn-info float-right align-middle shadow-sm">Скачать</a>
{% endif %}
</div>
</div>
</div>
</div>
{% endfor %}
</div>
<div class="container">
{% for post in articles %}
<div class="alert mx-auto article">
<a href="{% url 'news_detail' post.id %}"><img src="{{ post.image.url }}"></a>
<h4 class="display-4">{{ post.title }}</h4>
<h4>{{ post.text }}</h4>
<span>{{ post.date|date:"d E Y в H:i" }}</span>
</div>
{% endfor %}
</div>
另外,谁能推荐一些值得学习的书籍或视频课程,以帮助理解和使用 Django。我会很感激!
rigs = Rig.objects.all().order_by('-date')[:3]我想你会弄清楚第二个