django中的model的一些笔记

python 复制代码
class WarehouseRecordDetail(models.Model):
    warehouse_record = models.ForeignKey(WarehouseRecord, verbose_name=u"出入库记录",related_name='warehouse_record_detail_ref_warehouse_record', on_delete=models.PROTECT)
    warehouse_stock_record = models.ForeignKey(WarehouseStockRecord, verbose_name=u"库存记录", related_name='warehouse_record_detail_ref_stock_record',on_delete=models.PROTECT)
    count = models.DecimalField(verbose_name=u"数量", max_digits=20, decimal_places=4)

    class Meta:
        db_table = "product_warehouse_record_detail"
        verbose_name = u"库存查询"
        ordering = ('-id',)
        default_permissions = ()
        permissions = (# 产品仓别出入库记录明细
            ("view_consumable_stock", u"浏览"),
            ("export_consumable_stock", u"导出"),
            ("view_consumable_stock_log", u"查看动态"),
        )

model中外键关联中的related_name属性,可以在外键表中作为筛选条件,也就是反过来在外键表中使用。例如下面的使用WarehouseStockRecord就是外键表

python 复制代码
WarehouseStockRecord.objects.filter(product__type=product_type,warehouse_record_detail_ref_stock_record__warehouse_record__type__in=[0, 1,2]).order_by('-id')                                                                                                              

2.django中的Q()对象用于构建复杂查询条件的工具

在查询时,可以将Q对象作为参数传递给filter()方法,以实现复杂的查询条件

python 复制代码
# 在查询时,可以将Q对象作为参数传递给filter()方法,以实现复杂的查询条件
from django.db.models import Q

# 查询名字为'John'或年龄大于25的数据
results = MyModel.objects.filter(Q(name='John') | Q(age__gt=25))
相关推荐
ikun_文11 小时前
Django框架路由Router的使用
python·pycharm·django
sakiko_1 天前
Swift学习笔记42-SwiftUI的属性包装器(讲解+面试)
笔记·学习·ios·swiftui·swift
自小吃多1 天前
器件移动、旋转、镜像、对齐、等间距操作笔记
笔记·嵌入式硬件
存在morning1 天前
【Paimon 学习笔记 三】工作流程:Paimon 的批写、流写、批读与流读
笔记·学习
老当益壮梁奶奶1 天前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法
weixin_466068111 天前
《十分钟冥想》精读笔记(上):每天10分钟,给大脑做一次“系统减负”
笔记
凯尔萨厮1 天前
Java学习笔记十(注解)
java·笔记·学习
一条破秋裤1 天前
STM32 学习笔记:GPIO 输出实验——LED 闪烁、流水灯与蜂鸣器
笔记·stm32·学习
存在morning1 天前
【Paimon 学习笔记 二】存储架构:快照、manifest、LSM 树、bucket
笔记·学习·架构
双眼鈹1 天前
周报8.31
笔记·学习