ответ обновлен, увидим снова

ирую новостной веб-сайт, на котором есть две модели News и BestNews.News - это внешний ключ BestNews.News обозначает все новости, Best News выбирается как рекомендуемая новость.

Теперь я обработал список новостей и список лучших новостей в index.html. Но некоторые новости в этих двух частях дублированы.

Я надеюсь, что новости, которые в списке «Лучшие новости» не появятся в списке «Новости», и после того, как я удалил новость из «Лучшие новости в админке», новости, которые были удалены из лучших новостей, появятся в списке «Новости».

Вот моя новостная модель:

class News(models.Model):
    title = models.CharField(max_length=100, verbose_name='标题') 
    content = UEditorField(verbose_name="内容", width=600, height=300, imagePath="news/ueditor/", filePath="news/ueditor/", default='')

    class Meta:
        verbose_name = "新闻"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.title

Вот моя лучшая новость модель:

class Best(models.Model):
    select_news = models.ForeignKey(News, on_delete=models.CASCADE, related_name='select_news',verbose_name='要闻')  
    SELECT_REASON = (
        ('左一', '左一'),
        ('左二', '左二'),
    )
    select_reason = models.CharField(choices=SELECT_REASON, max_length=50, null=False)  

    class Meta:
        verbose_name = "精选"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.select_reason + '-' + self.select_news.title

Вот мой список новостей: я получаю список новостей и список лучших новостей в одном представлении.

class NewsView(View):

    def get(self, request):
        all_news = News.objects.all().order_by('-pk')
        bestnews1 = Best.objects.filter(select_reason="左一")[0].select_news
        bestnews2 = Best.objects.filter(select_reason="左二")[0].select_news

        return render(request, 'index.html', {
            'all_news': news,
             'bestnews1':bestnews1,
             'bestnews2':bestnews1,
        })

Ответы на вопрос(1)

Ваш ответ на вопрос