首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >django外键查找聚合数据

django外键查找聚合数据
EN

Stack Overflow用户
提问于 2016-09-13 19:07:48
回答 1查看 1.3K关注 0票数 0

我正在制作工具清单/跟踪系统。我当前的问题是,如何收集当前已检出的工具的总数,并从该工具的总数量中减去该数量。这样我就可以显示手边的数量了。这样,用户就可以确保该工具目前在商店中,并且不会被借用它的人检出。

型号:

代码语言:javascript
运行
AI代码解释
复制
class ActiveTransactionManager(models.Manager):
    def get_queryset(self):
        return super(ActiveTransactionManager, self).get_queryset().filter(CheckInDate = None)

class Tool(models.Model):
    ToolID=models.CharField(max_length=100, primary_key = True, unique=True, db_column='ToolID')
    Quantity=models.IntegerField(null=False)
    Location=models.CharField(max_length=100, null=False)
    CategoryID=models.IntegerField(null=True)
    Deleted=models.BooleanField(default=0)

    objects=models.Manager()

    class Meta:
        managed=True
        db_table='Tool'
    def __unicode__(self):
        return self.ToolID

    def get_absolute_url(self):
        return reverse("ToolSearch:toolSearchResults", kwargs={"pk": self.ToolID})

class ToolCheckIn(models.Model):
    CheckOutID=models.AutoField(primary_key=True)
    ToolID=models.ForeignKey(Tool, db_column='ToolID', on_delete=models.CASCADE,)
    PartyID=models.ForeignKey(Borrower, db_column='PartyID', on_delete=models.CASCADE,)
    Quantity=models.IntegerField(null=False)
    CheckOutDate=models.DateField(null=False, default=datetime.datetime.now)
    CheckInDate=models.DateField(null=True)
    Deleted=models.BooleanField(default=0)

    objects=ActiveTransactionManager()

    class Meta:
        managed=True
        db_table='ToolTransaction'
        ordering=('CheckOutID',)
    def __unicode__(self):
        return str(self.CheckOutID)

    def get_absolute_url(self):
        return reverse("ToolSearch:toolCheckin", kwargs={"pk": self.CheckOutID})

查看:

代码语言:javascript
运行
AI代码解释
复制
def tool_search(request):
    if request.method == 'POST':
        instance = None
        pk = (request.POST.get('toolid', 'Nothing Found'))
        instance = Tool.objects.all().filter(ToolID__icontains=pk)
        context = {
            "ToolID": instance
        }
        return render(request, "toolsearchresults.html", context)

    return render(request, "toolsearch.html")

我收到了这个错误:相关字段无效查找:图标,我删除了上面列出的导致错误的代码行: queryset = ToolCheckIn.objects.all().filter(ToolID_id__icontains=pk)

不确定我是否可以从ORM中实现这一点,或者我是否需要编写一些原始sql来实现这一点。我目前正在使用MYSQL。

如有任何想法或想法,将不胜感激。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-16 22:20:33

将注释中的重要信息添加到答案中。

在您的情况下,合适的包含查询将是

代码语言:javascript
运行
AI代码解释
复制
ToolCheckIn.objects.all().filter(ToolID__ToolID__contains=p‌​k)

基本上,如果您的ToolCheckIn模型中外键的字段名应该是stackoverflow,那么查询应该是

代码语言:javascript
运行
AI代码解释
复制
ToolCheckIn.objects.all().filter(stackoverflow__ToolID__contains=p‌​k)

上面的意思是使用模型ToolID中的外键stackoverflow对模型Toolstackoverflow字段进行包含查询。

如果您在模型Location字段上做了一个包含的查询,那么您的查询应该是这样的

代码语言:javascript
运行
AI代码解释
复制
ToolCheckIn.objects.all().filter(stackoverflow__Location__contains=p‌​k)

外键是通向外键或关系的model的门,而双下划线是通向相同的路径。

我希望这能帮你清除掉。

但有趣的是,为什么下面这些东西不起作用?

代码语言:javascript
运行
AI代码解释
复制
ToolCheckIn.objects.all().filter(ToolID__contains=p‌​k)

甚至Docs也没有提供任何关于外键如何保存在表中的信息。无论是在存储前格式化还是散列,以说明为什么包含查询会导致Related Field got invalid lookup: icontains错误,或者Django是否直接支持外键上的包含查找,只支持等式查找,即假定外键始终是整数类型,因为外键是来自于外键的模型的E 126主键<Related Field got invalid lookup: icontains>E 227,默认情况下,如果不提供任何主键,则Django将生成自己的E 128主键E 229/code>其中的<>代码E 130E 231/>代码类型。因此,当主键可以是Char类型的字段时,不包括这种情况,这就带来了包含查找的可能性,因为包含不适用于int类型。

这就是我所想的,因为我没有在互联网上找到很多关于同样的相关信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39481905

复制
相关文章
android本地lib通过gradle上传到本地nexus上
在apply plugin: 'com.android.library'下添加如下内容:
隔壁老李头
2018/08/30
2.7K0
android本地lib通过gradle上传到本地nexus上
YouTube 开始测试视频下载
由于 YouTube 不提供下载,所以你可以通过上百的站点,脚本,扩展和程序下载 YouTube 视频。最初,适合下载的格式是 FLV,这种格式只能使用 Adobe Flash 来播放。然后 YouTube 开始测试高清晰视频(包括 MP4),所以现在可以把 YouTube 视频导出成 MP4 格式。 其实下载 YouTube 导出的 MP4 文件,你可以使用以前下载 FLV 文件一样的 URL,然后在 URL 的最后附加上 "&fmt=18" 即可,如下:
Denis
2023/04/14
7000
YouTube 开始测试视频下载
教你下载YouTube的视频
huolong
2023/07/26
2.3K0
教你下载YouTube的视频
YouTube上最火的OpenCV-Python入门视频教程
今天跟大家推荐一份YouTube上最火的 OpenCV-Python 入门视频教程,该教程由CodeBind网站博主录制,从今年2月份到现在已经录制了38个主题。
CV君
2019/12/27
1.2K0
读累了看视频 :YouTube上最火的10个大数据视频
翻译 | 伯乐在线 - 柒柒 原文来自Eileen McNulty 无论你对大数据一无所知,还是想要拓展机器学习方面的知识;无论你有三小时,还是三分钟;无论你是想进一步了解这个技术还是那些高级应用,一起来看YouTube上最棒的大数据视频。(视频要翻墙观看哦!) 1. 《Kenneth Cukier: Big Data is Better Data 大数据让我们做得更好》 https://www.youtube.com/watch?v=8pHzROP1D-w 毫无疑问,这个选自人气颇高的TED Talks
CDA数据分析师
2018/02/23
2.5K0
android视频系列:视频解码篇--android上视频播放的实现
前言 要开始正儿八经地写视频系列文章了。思来想去,从播放器入手,再合适不过了。视频文件,只有播放出来,才显示出了意义;只有播放出来,才暴露出各种问题。先理解播放的场景,才能更好地理解视频处理时所选取的策略。 播放器做了什么 播放器播放视频,就是一步步剖开视频的内容,显示在屏幕上。 最简单的理解方式,是把视频文件看做一个容纳了很多图片的容器。播放时,从容器里取出一张图片,放到屏幕上显示,隔一点时间后,再从容器里取出下一张图,放到屏幕上。按次序把图片一张一张显示到屏幕上,等到最后一张也显示到屏幕上后,播放就完成
天天P图攻城狮
2018/02/02
4.1K0
android视频系列:视频解码篇--android上视频播放的实现
YouTube Direct:使用 YouTube 创建你自己的视频网站
YouTube 最近发布了一个新功能,YouTube Direct,它能让你i在自己的网站上直接嵌入 YouTube 视频上传功能,用户就能直接在第三方网站上上传视频,而 Direct 的用户则能够审核视频,是否接受用户上传的视频。这样 YouTube 除了是一个视频分享网站之外,现在又真正成为了一个视频服务存储服务平台,让任何媒体,组织或者个人都能利用 YouTube 构建属于自己的视频网站。
Denis
2023/04/14
1.9K0
YouTube Direct:使用 YouTube 创建你自己的视频网站
如何破解YouTube视频推荐算法
如果你是某个发行渠道(比如电影、戏剧、电视节目、网络视频)的内容工作者,那么内容的成败就取决于发行机制的运转逻辑。比如说,你制作了一档电视节目,你很想它能火起来,那么你就得知道该在哪里切入广告,怎么宣传节目,上哪个频道播放,所选的频道能被多少家庭收看,等等,诸如此类。 如果你的发行渠道是YouTube,那么你最应该搞清楚的是YouTube的算法是怎么工作的。然而,全天下所有由算法来运营的平台,要搞清楚这一点那不是一般的困难。 YouTube没有把他们算法用到的变量公之于众。要搞清楚其算法的运转原理,即使数据
用户1289394
2018/02/28
2.5K0
如何破解YouTube视频推荐算法
宽屏模式插入 YouTube 视频
最近 YouTube 将其网站上视频的播放格式改为 16:9 宽屏模式播放,原有 4:3 模式的视频依然可以兼容播放。
Denis
2023/04/14
9230
宽屏模式插入 YouTube 视频
如何下载YouTube上的视频、字幕、MP3以及封面文件
当你找到一些有用的YouTube视频,想要重复观看或者暂时没有时间观看的时候,你可能需要将这些视频文件下载下来。如果你正在寻找将YouTube上的文件下载到电脑的方法,包含YouTube上面的视频、字幕、封面以及MP3等文件,这篇教程可以帮到你。
dev.zhang
2022/05/23
4.2K0
如何下载YouTube上的视频、字幕、MP3以及封面文件
YouTube上最受欢迎的十大机器学习视频(最新)
选自KDnuggets 作者:Thuy T. Pham 机器之心编译 参与:微胖、黄小天 虽然 YouTube 有很多不错的机器学习视频,但是很难搞清楚是否值得一看,何况每分钟上传的视频长达 300 小时。在本文中,我们整理了观看量最高的十大机器学习视频。今天这篇推送更新了之前颇受欢迎的博文(2015 年 Youtube 最受欢迎十大机器学习视频,https://goo.gl/6ElLdd)。另外,我们也添加了 4 个最受欢迎的相关视频列表(本文第二部分)。 这份顶级机器学习视频排名包括斯坦福、 加州理工、
机器之心
2018/05/08
4.5K0
YouTube上最受欢迎的十大机器学习视频(最新)
正确下载youtube视频的方式
youtube这个不存在的网站上有很多有用的资料,一般来说我们是可以下载所有视频到本地以供离线的情况下的研究学习,网上有很多工具提供了下载功能,但是在试用了很多标称很好用的软件后,老高发现,真的没有一个能和youtube-dl相提并论,所以老高还是记录一下如何使用正确使用youtube-dl!
老高的技术博客
2022/12/28
1.2K0
视频切片并上传到GitHub
利用 jsDeliver + GitHub 实现免费 CDN 加速静态资源,例如图片、CSS、JS等,相信大家都知道。也有人想过存放视频,但是 jsDeliver 不支持加载超过 20M 的资源,所以视频需要压缩到 20M 以下。如果想要放部电影,那就需要用到 HLS切片 了。这里我用了狐妖小红娘竹业篇做测试,整部视频大小为 1.76G,以 20S 为一段共切了 506 段。
骤雨重山
2022/01/17
1.5K0
视频切片并上传到GitHub
视频切片并上传到GitHub
GitHub对项目大小的限制,因此请注意自己项目的大小和切片文件的大小,尽可能避免被GitHub警告。
赤月未咲
2023/03/17
1.6K0
开创YouTube视频基础架构新时代
运行一个全球平台,每天每时每刻都有大量的视频上传、存储和分发,给它的数百万创作者和数十亿观众,这是一项复杂而艰巨的任务。但是,如果一切都像它应该的那样工作,那么它就是以一种没有人注意到的方式完成的。在创新系列本期文章中,我们以罕见的内部视角介绍了一项重要创新,这项创新开创了YouTube视频基础架构的新时代。首席软件工程师Jeff Calow带领我们创建了一个开创性的系统,该系统为我们的平台提供了强大的支持,使我们的观众人数激增,并将带领我们走向未来。
LiveVideoStack
2021/09/01
5900
论文阅读——YouTube的视频推荐系统
《The YouTube video recommendation system》是一篇详细介绍YouTube视频推荐的论文,在整个系统中没有复杂的算法,使用了一些简单有效的策略,这也符合工业界的应用,在工业界,为了考虑算法复杂度,数据量,可维护性等等一些因素,在工业界中,通常会选择一些简单有效的方法。
felixzhao
2019/01/31
1.2K0
论文阅读——YouTube的视频推荐系统
点击加载更多

相似问题

软件工程术语的需求本体

13

C标准中的条件特性是什么?

24

测试框架的标准特性是什么?

11

非交互式功能需求软件工程

117

将需求映射到Redmine中的特性的最佳方法是什么?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档