O filtro Django exclui chave estrangeira
Estou codificando um site de notícias que tem dois modelos News e BestNews.News é uma chave estrangeira do BestNews.News, que representa todas as notícias, Best News é selecionado para ser recomendado.
Agora, renderizei a lista de notícias e a lista de melhores notícias em index.html. Mas algumas notícias nessas duas partes são duplicadas.
Espero que as notícias que, na lista de melhores notícias, não apareçam na lista de notícias, e depois de removê-las da lista de melhores notícias do administrador, as notícias que foram removidas das melhores notícias serão exibidas na lista de notícias.
Aqui está o meu modelo de notícias:
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
Aqui está o meu modelo de melhores notícias:
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
Aqui está minha exibição de lista de Notícias: Eu recebo a lista de Notícias e a lista de Melhores Notícias em uma exibição.
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,
})