Django 过滤器排除外键

2023-12-01

我正在创建一个新闻网站,有两种模型:

  1. News
  2. 最佳新闻。

BestNews有一个外键News.

News代表所有新闻,BestNews代表推荐新闻。

现在我已经在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,
        })

all_news = News.objects.all().order_by('-pk')

to

all_news = News.objects.filter(select_news__isnull=True).order_by('-pk')

免费建议:

change

bestnews1 = Best.objects.filter(select_reason="左一")[0].select_news

to

bestnews1 = Best.objects.filter(select_reason="左一").first()
bestnews1_new = None if bestnew1 is None else bestnews1.select_news
return render(request, 'index.html', {
            'all_news': news,
             'bestnews1_new':bestnews1_new,
             'bestnews2_new':bestnews2_new,
        })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 过滤器排除外键 的相关文章

随机推荐

  • 为什么多维数组中需要更高维度的维度范围?

    根据该帖子 将 2D 数组传递给 C 函数 int array 10 10 void passFunc int a 10 lt Notice 10 here passFunc array 从编译器内部的角度来看 为什么需要这个更高的维度 另
  • 奇怪地使用方括号来调用函数

    使用方括号调用函数是如何工作的 100 toString function toString native code 100 toString length 1 这里到底发生了什么 这是括号表示法 任何属性都可以使用点或方括号表示法来访问
  • 减小图像的文件大小

    我用安卓相机拍了一张照片 结果是一个字节数组 我通过将其写入SD卡 FileOutputStream 来保存它 结果是文件大小接近 3mb 的图像 我想减小此文件大小 因此压缩图像 如果在将字节数组写入输出流之前能够减少文件大小 那就太好了
  • 让你的程序使用 GUI

    我想编写一个程序 能够通过控制鼠标 键盘并能够 查看 屏幕上的内容来 使用 其他程序 I used AutoIt做类似的事情 但有时我不得不作弊 因为语言不是那么强大 或者也许只是我很糟糕 我无法用它做那么多 P 所以 我需要 截屏 然后我
  • IntelliJ:将 jar 包含在 jar 工件中

    使用 IntelliJ 9 0 2 Community Edition 在 Mac 上进行开发 我有一个程序依赖于两个库罐子 我已经弄清楚如何让 IntelliJ 为我的源代码制作一个 jar 使用 Artifact 选项卡 甚至将两个 j
  • 如何重写此查询以避免错误:您无法在 FROM 子句中指定用于更新的目标表

    update websites set master 2 where url select url from websites where id 12 显然 mysql 不允许您对正在更新的表运行选择查询 将其放入派生表中 这会具体化为临时
  • 接口没有构造函数,那么如何继承呢?

    据我所知 子类构造函数通过使用调用超类构造函数super 但既然接口没有构造函数 那么如何实现继承呢 但是由于接口没有任何构造函数 如何进行继承 很简单 接口不能有任何实例字段 因此无需构造任何内容 您无法将代码放置在接口中 至少在 Jav
  • Chrome 内容脚本未在 about:blank 页面中加载

    我正在开发一个 Chrome 扩展 它将根据以下清单加载内容脚本 content scripts matches
  • EWS 管理:获取预约的必需和可选与会者

    就我现在而言 我知道如何从交换服务器获取约会 但是一旦我想查看必填和可选的与会者 这些字段都是空的 我检查了约会三次 有一个与会者 除了我 我是否必须以不同的方式配置 Outlook 或者我是否遗漏了某些内容 List
  • python - 在 memmap 和 CPU 中工作时进行快速矩阵乘法和归约的方法

    您好 我在进行快速矩阵乘法 加法 function overwrite 和轴缩减求和以及在没有 RAM 的 CPU 上使用 numpy memmaps 时遇到问题 我认为 仅当使用 numexpr 时 我才有可能避免从点创建数组 For e
  • Go中如何获取本地IP地址?

    我想获取计算机的IP地址 我使用了下面的代码 但它返回127 0 0 1 我想获取IP地址 例如10 32 10 111 而不是环回地址 name err os Hostname if err nil fmt Printf Oops v n
  • 如何使用 Node 正确地从 mysql 返回结果?

    在代码中 var stuff i want stuff i want get info parm 以及函数 get info get info data var sql SELECT a from b where info data con
  • 如何在zxing中触发批量模式扫描

    我读到有一个可以在 zxing 中启用批量模式扫描的键 我可以知道如何在 Android 应用程序中启用此键吗 我目前正在使用这样的代码来单独扫描条形码 Intent intent new Intent com google zxing c
  • 将类附加到 jQuery 对象

    我正在努力解决如何最好地结合 javascript 类和 jQuery 插件 这个问题不是很具体 我希望的是指向更多资源的指针 基本上 我想将状态数据和私有方法存储在一个类中 然后扩展我调用插件的每个 jQuery 对象以拥有这些私有方法和
  • ReactJS 和 jQuery 是互斥的吗?

    我是 ReactJS 的新手 ReactJS 似乎完全接管了渲染 DOM 节点的责任 并且不期望任何其他干扰 甚至是 jQuery 它带来了一个事实 即许多方便的 jQuery 插件无法在 React 中使用 其中一些插件已经实现了等效的
  • Angular.js、iframe 和 Firefox

    我有一种感觉 我错过了一些明显的东西 但我无法使 iframe 在 Firefox 中使用 Angular js 路由工作 这是一个示例 plunker 代码 The index html文件包含ng view哪个加载main html d
  • Matplotlib 轴标签将科学指数移动到同一行

    我目前正在制作一个 x 轴范围从 0 到 1 3e7 的图 我将其绘制如下 plt errorbar num vertices sampled ave path average yerr sampled ave path stdev fmt
  • 模板别名范围

    As per http en cppreference com w cpp language type alias 别名是块级声明 它没有说任何关于模板别名的特殊信息 因此应该理解模板别名也是块级声明 但是 不可能在块级别使用模板别名 根据
  • jQuery 获取所选选项值(不是文本,而是属性“value”)

    好的 我有这个代码
  • Django 过滤器排除外键

    我正在创建一个新闻网站 有两种模型 News 最佳新闻 BestNews有一个外键News News代表所有新闻 BestNews代表推荐新闻 现在我已经在index html中渲染了新闻列表和最佳新闻列表 但这两个部分中的一些新闻是重复的