- 简介
- 目录大纲
- 最新文档
related_name 介绍
背景 在 Django 中,定义模型之间的外键关系时,通常存在两个方向: - 正向关系:在外键字段所在的模型中,可以直接通过该字段访问关联的对象。 - 反向关系:通过被关联对象,可以访问指向它的多个对象(即,a 对象关联到多个 b 对象)。 related_name 参数的作用就是用来为这种反向关系指定名称。下面详细说明其作用及使用方式: related_name的作用 s 作用1:自定义反向关……
gaojian - 2025年2月19日 14:28
prefetch_related 介绍
prefetch_related 是 Django ORM 提供的一种查询优化工具,主要用于预加载与主对象存在多值关系(如多对多、反向外键或一对多)的关联对象,从而避免在遍历对象时发生 N+1 查询问题。下面详细介绍其原理、使用场景以及示例。 使用示例 假设有如下模型,在这个例子中,一个作者对应多本书,我们希望在查询作者时同时预加载书籍数据: ``` from django.db import m……
gaojian - 2025年2月19日 14:14
模型 管理器(Manager)
概述 管理器(Manager)是 Django 模型进行数据库操作的接口,默认通过 objects 属性访问。它提供了数据库查询的方法,如 all()、filter()、create() 等。 示例: ``` 自定义管理器 class PublishedManager(models.Manager): def get_queryset(self): """重写查询集方法""" re……
gaojian - 2025年2月6日 09:22
模型 class Meta
Django Model class Meta 有以下属性: 1. 基本属性 class MyModel(models.Model): class Meta: db_table = "my_table" # 指定表名 ordering = ["-created_at"] # 默认排序 verbose_name = ……
gaojian - 2025年2月6日 09:17
Celery(二)
@shared_task 是 Celery 提供的一个装饰器,用于定义可以在多个 Celery 应用中共享的任务。与 @app.task 不同,@shared_task 不需要显式地绑定到特定的 Celery 应用实例。这使得它在 Django 项目中特别有用,因为它允许你在应用模块中定义任务,而不需要直接引用 Celery 应用实例。 以下是 @shared_task 的一些关键点: 无需显式……
gaojian - 2024年11月19日 14:27