首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django——ContentType(与多个表建立外键关系)及ContentType-signals的使用

一、ContentType  在django中,有一个记录了项目中所有model元数据的表,就是ContentType,表中一条记录对应着一个存在的model,所以可以通过一个ContentType表的...可以看到,我们通过model_class就可以获取对应的类。也就是说,今后,我们如果自己定义model如果有外键关联到這个ContentType上,我们就能找到对应的model名称。...二、Django-ContentType-signals    django的signal结合contenttypes可以实现好友最新动态,新鲜事,消息通知等功能。...前面说到django在保存一个object的时候会发出一系列signals,在这里我们所监听的是signals.post_save这个signal,这个signal是在django保存完一个对象后发出的...显然是不能,一旦数据库被创建了,我们几乎很少再去修改数据,如果再给其添加额外字段,无疑会带来不必要的麻烦。为此,我们可以利用Django自带的ContentType类,来做这件事情。

4.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django源码学习-25-ContentType

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...在django中,有一个记录了项目中所有model元数据的表,就是ContentType,表中一条记录对应着一个存在的model,所以可以通过一个ContentType表的id和一个具体表中的id找到任何记录...通过model_class就可以获取对应的类。如果自定义model,如果有外键关联到这个ContentType上,就能找到对应的model名称。 ?...1.ContentType.model_class(): 获取当前ContentType类型所代表的模型类。...2.ContentType.get_object_for_this_type(): 使用当前ContentType类型所代表的模型类做一次get查询。 ?

    67030

    Django 模型索引的创建

    在 Django 中,索引是优化数据库查询性能的重要工具。Django 提供了多种方式来为模型字段创建索引,比如通过字段选项或直接在模型的 Meta 类中定义。...下面详细介绍如何在 Django 中为模型创建索引。1、问题背景在 Django 中,当我们需要对模型字段创建索引时,可以使用 Options.index_together 属性。...例如,以下代码演示了如何为 Subscribe 模型的 email 字段和 auth_code 字段创建索引:class Subscribe(models.Model): email =...2、解决方案为了解决这个问题,我们可以使用 Meta 类来定义模型的元数据。在 Meta 类中,我们可以使用 index_together 属性来创建索引。...例如,以下代码演示了如何使用 Meta 类来为 Subscribe 模型的 email 字段和 auth_code 字段创建索引:class Subscribe(models.Model):

    11110

    Django model,baseModel基类, migrate移行

    )verbose_name(逻辑名称)default_related_name 外键反向查询的字段名(默认_set)get_latest_by 指定 first(), last() 的排序条件default_permissions...,单数如果没有给定,Django 将使用一个 munged 版本的类名:CamelCase变成camelcase。...复数名称用:verbose_name_plural管理画面标示的名称是这样的,默认加s图片4. default_related_name在外键中设置外键反向查询的字段名。...你可以自定义这个列表,例如,如果你的应用不需要任何默认的权限,可以将其设置为空列表。它必须在模型创建之前通过migrate在模型上指定。...图片图片7, managed 默认为True,意味着 Django 会在migrate中创建相应的数据库表,或者作为迁移的一部分。

    1.1K30

    Django实战-调查问卷表设计优化

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...在django中,有一个记录了项目中所有model元数据的表,就是ContentType,表中一条记录对应着一个存在的model,所以可以通过一个ContentType表的id和一个具体表中的id找到任何记录...显然是不能,一旦数据库被创建了,几乎很少再去修改数据,如果再给其添加额外字段,无疑会带来不必要的麻烦。为此,可以利用Django自带的ContentType类,来做这件事情。...from django.contrib.contenttypes.models import ContentType class Survery(models.Model): """...creator 1 第一次班级调查 大一计算机205班 张老师 """ name = models.CharField(verbose_name="调查问卷名称

    1.8K20

    Django实战-信息资讯-CMS权限管理

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...Django 的权限permission 本质是 djang.contrib.auth 中的一个模型, 其与 User 的 user_permissions 字段是多对多的关系。...在 INSTALLED_APP 里添加好 auth 应用之后,在执行完makemigrations 和 migrate 命令后,Django 就会为每一个安装的app中的模型(Model)自动创建4个可选的权限...① ContentType 将模型和app进行关联 from django.contrib.auth.models import ContentType ContentType 是Django内置的一个应用...django.contrib.auth.models.Group 定义了用户组的模型, 每个用户组拥有 id 和 name 两个字段, 该模型在数据库被映射为 auth_group 数据表。

    1K10

    django权限管理(Permission)

    和permission完成了权限机制,这个权限机制是将属于model的某个permission赋予user或group,可以理解为全局的权限,即如果用户A对数据模型(model)B有可写权限,那么A能修改...总是与model对应的,如果一个object不是model的实例,我们无法为它创建 /分配权限 默认权限 在 INSTALLED_APPS 设置中列出django.contrib.auth 后,安装的各个应用中的每个...分组 django.contrib.auth.models.Group 模型是为用户分类的通用方式,这样便可以为一批用户 赋予权限或添加其 他标注。用户所属的分组数量不限。...change the status of server"), ) #codename == view_server权限验证项 #name == can view server 可读的名称...import Group, Permission from django.contrib.contenttypes.models import ContentType content_type = ContentType.objects.get_for_model

    6.7K40
    领券