Python 显示新闻列表中文章的快照
我有一个Python 显示新闻列表中文章的快照,python,html,django,Python,Html,Django,我有一个news\u list.html模板,它完整地列出了所有文章。有什么方法可以让我把这些文章作为整篇文章的快照来展示吗。理想情况下,我想显示一个缩略图大小的图像,标题和前50个字符,并让用户点击进入文章查看所有内容。可以这样做吗?如果可以,怎么做 其他信息 这是我的模板(news_list.html): views.py class NewsListView(ListView): model = News template_name = 'news_list.html'
news\u list.html
模板,它完整地列出了所有文章。有什么方法可以让我把这些文章作为整篇文章的快照来展示吗。理想情况下,我想显示一个缩略图大小的图像,标题和前50个字符,并让用户点击进入文章查看所有内容。可以这样做吗?如果可以,怎么做
其他信息
这是我的模板(news_list.html):
views.py
class NewsListView(ListView):
model = News
template_name = 'news_list.html'
class NewsDetailView(DetailView):
model = News
template_name = 'news_detail.html'
login_url = 'login'
class NewsUpdateView(LoginRequiredMixin, UpdateView):
model = News
fields = ('title', 'body', 'thumb')
template_name = 'news_edit.html'
login_url = 'login'
def test_func(self):
obj = self.get_object()
return obj.author == self.request.user
class NewsDeleteView(LoginRequiredMixin, DeleteView):
model = News
template_name = 'news_delete.html'
success_url = reverse_lazy('news_list')
login_url = 'login'
def test_func(self):
obj = self.get_object()
return obj.author == self.request.user
class NewsCreateView(LoginRequiredMixin, CreateView):
model = News
template_name = 'news_new.html'
fields = ('title', 'body', 'thumb')
login_url = 'login'
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
我在模板的body元素中添加了
truncatewords
:
{% block content %}
{% for news in object_list %}
<div class="card" style="width:300px">
<div class="card-header">
<span class="font-weight-bold">
<a href="{% url 'news_detail' news.pk %}" style="color:black">{{ news.title }}</a>
</span> ·
<span class="text-muted">by {{ news.author }} | {{ news.date }}</span>
</div>
<div class="card-body">
{% if news.thumb %}
<p align="center"><img src="{{ news.thumb.url }}" /></p>
{% endif %}
<p>{{ news.body | linebreaks | truncatewords:30 }}
<a href="{% url 'news_detail' news.pk %}">Full story</a></p>
</div>
<div class="card-footer">
{% if user.is_authenticated %}
<a href="{% url 'news_edit' news.pk %}">Edit</a>
<a href="{% url 'news_delete' news.pk %}">Delete</a>
{% endif %}
</div>
</div>
<br />
{% endfor %}
{% endblock content %}
{%block content%}
{对象_列表%中的新闻为%0}
&米德多;
作者{{news.author}}{{news.date}
{%if news.thumb%}
{%endif%}
{{news.body | linebreaks | trunchewords:30}
{%if user.u经过身份验证%}
{%endif%}
{%endfor%}
{%endblock内容%}
请显示一些代码,如模板、模型和视图。抱歉@Stargazer。他提问题太快了。我在问题中添加了一些相关代码。
class NewsListView(ListView):
model = News
template_name = 'news_list.html'
class NewsDetailView(DetailView):
model = News
template_name = 'news_detail.html'
login_url = 'login'
class NewsUpdateView(LoginRequiredMixin, UpdateView):
model = News
fields = ('title', 'body', 'thumb')
template_name = 'news_edit.html'
login_url = 'login'
def test_func(self):
obj = self.get_object()
return obj.author == self.request.user
class NewsDeleteView(LoginRequiredMixin, DeleteView):
model = News
template_name = 'news_delete.html'
success_url = reverse_lazy('news_list')
login_url = 'login'
def test_func(self):
obj = self.get_object()
return obj.author == self.request.user
class NewsCreateView(LoginRequiredMixin, CreateView):
model = News
template_name = 'news_new.html'
fields = ('title', 'body', 'thumb')
login_url = 'login'
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
{% block content %}
{% for news in object_list %}
<div class="card" style="width:300px">
<div class="card-header">
<span class="font-weight-bold">
<a href="{% url 'news_detail' news.pk %}" style="color:black">{{ news.title }}</a>
</span> ·
<span class="text-muted">by {{ news.author }} | {{ news.date }}</span>
</div>
<div class="card-body">
{% if news.thumb %}
<p align="center"><img src="{{ news.thumb.url }}" /></p>
{% endif %}
<p>{{ news.body | linebreaks | truncatewords:30 }}
<a href="{% url 'news_detail' news.pk %}">Full story</a></p>
</div>
<div class="card-footer">
{% if user.is_authenticated %}
<a href="{% url 'news_edit' news.pk %}">Edit</a>
<a href="{% url 'news_delete' news.pk %}">Delete</a>
{% endif %}
</div>
</div>
<br />
{% endfor %}
{% endblock content %}