Я хочу спросить вас, отправляю ли я статью с featured = True, тогда старый featured = true переносится в featured = false набор запросов. я просто хочу два [:2]
значения в featured = true queryset. вот пример того, что я хочу есть две статьи в featured = true queryset, которые я хочу, чтобы вторая статья автоматически обновлялась до featured = false при создании новой статьи.
вывод моего кода, когда я подал заявку, только одна статья . были, как я хочу, чтобы две статьи были показаны.
Вот запрос база данных с print(featured_articles.count())
, фотография списка статей в admin , и шаблон .
models.py
class ArticleQuerySet(models.Manager):
def get_queryset(self):
return super(ArticleQuerySet,self).get_queryset().filter(status=True)
class Article(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey(
User, on_delete=models.CASCADE, blank=True, null=True)
thumbnail = models.ImageField(default='def.jpg',
upload_to='article/thumbnails')
timestamp = models.DateTimeField(auto_now_add=True)
content = RichTextUploadingField(blank=True)
featured = models.BooleanField(default=False)
status = models.BooleanField(default=True)
tags = TaggableManager()
objects = models.Manager()
status_objects = ArticleQuerySet()
def __str__(self):
return self.title
class Meta:
ordering = ['-timestamp']
# i also try this method
def save(self, *args, **kwargs):
if self.featured == True:
Article.objects.filter(pk__in=(Article.objects.filter(featured=True,
).values_list('pk',flat=True)[:2])).update(featured=False)
self.featured = True
super(Article, self).save(*args, **kwargs)
views.py
from django.shortcuts import render
from .models import Article
def index(request):
featured_articles = Article.status_objects.filter(tags__exact='1', featured=True)[:2]
regular_articles = Article.status_objects.filter(tags__exact='1').exclude(pk__in=featured_articles)
context = {
'featured': featured_articles,
'regular': regular_articles,
}
return render(request, 'news/index.html', context)
index. html
<!--post header-->
<div class="post-head">
<h2 class="title"> Article </h2>
</div>
<!-- post body -->
<div class="post-body">
<div class="">
<!-- item one -->
<div class="item">
<div class="row">
<div class="col-sm-6 main-post-inner bord-right">
{% for nat in featured %}
<article>
<figure>
<a href="{% url 'news-detail' pk=nat.pk %}"><img src="{{ nat.thumbnail.url }}"
height="242" width="345" alt="" class="img-responsive"></a>
</figure>
<div class="post-info">
<h3><a href="#">{{ nat.title }}</a>
</h3>
<span>
<i class="ti-timer"></i>
{{ nat.timestamp | timesince }}
</span>
<p></p>
</div>
</article>
{% endfor %}
</div>
<div class="col-sm-6">
<div class="news-list">
{% for nat in regular %}
<div class="news-list-item">
<div class="img-wrapper">
<a href="{% url 'news-detail' pk=nat.pk %}" class="thumb">
<img src="{{ nat.thumbnail.url }}" alt="" class="img-responsive">
<div class="link-icon">
<i class="fa fa-camera"></i>
</div>
</a>
</div>
<div class="post-info-2">
<h5><a href="{% url 'news-detail' pk=nat.pk %}" class="title">{{ nat.title }}</a>
</h5>
<i class="ti-timer"></i> {{ nat.timestamp | timesince }}
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
</div>
</div>
</div>