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

Django扩展: ForeignKeyAutocompleteTabularInline不支持模型继承吗?

Django扩展: ForeignKeyAutocompleteTabularInline是一个用于在Django admin中创建具有自动完成功能的外键关联表的扩展。它可以方便地在内联表中选择外键关联的对象。

对于模型继承,ForeignKeyAutocompleteTabularInline默认情况下不支持。这是因为在Django中,模型继承有两种方式:抽象基类继承和多表继承。

对于抽象基类继承,可以通过在父类中定义ForeignKey字段,并在子类中使用ForeignKeyAutocompleteTabularInline来实现外键关联。这样可以在子类的内联表中选择外键关联的对象。

对于多表继承,由于每个子类都有自己的数据库表,ForeignKeyAutocompleteTabularInline无法直接支持。但可以通过自定义InlineModelAdmin来实现类似的功能。具体步骤如下:

  1. 创建一个自定义的InlineModelAdmin类,继承自ForeignKeyAutocompleteTabularInline。
  2. 在自定义的InlineModelAdmin类中,重写get_queryset方法,根据需要筛选出相关的子类对象。
  3. 在父类的admin.py文件中,将自定义的InlineModelAdmin类添加到子类的inlines列表中。

这样就可以在子类的内联表中选择外键关联的对象了。

推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云云服务器CVM。

腾讯云数据库MySQL:腾讯云提供的高性能、可扩展的关系型数据库服务。支持自动备份、容灾、监控等功能,适用于各种规模的应用场景。

产品介绍链接地址:https://cloud.tencent.com/product/cdb

腾讯云云服务器CVM:腾讯云提供的弹性计算服务,可快速创建和管理云服务器实例。具备高性能、高可靠性、高可扩展性等特点,适用于各种应用场景。

产品介绍链接地址:https://cloud.tencent.com/product/cvm

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django 继承AbstractUser扩展用户模型

Django 继承AbstractUser扩展用户模型 by:授客 QQ:1033553122 测试环境 Win 10 Python 3.5.4 Django-2.0.13.tar.gz 官方下载地址...User Model,用于记录用户的用户名,密码,邮箱,姓,名等个人信息,这些信息可能无法满足实际需求,这种情况下,需要拓展用户模型,如果项目还没有使用 Django 内置 User 模型,可以采用继承...AbstractUser 的拓展方式进行拓展(如果已经使用了Django的内置模型Django会为其生成相关数据库迁移文件和数据库表,采用继承方式拓展会比较麻烦。)...查看User模型源码,(本文中文件路径为: %PYTHON_HOME%\Lib\site-packages\Django-2.0.13-py3.5.egg\django\contrib\auth\models.py...),如下,可知User仅是继承了 AbstractUser,没有对 AbstractUser 做任何的拓展,所以,如果我们可以自己继承 AbstractUser,并根据自己的需求进行拓展。

1.6K20

Django 模型继承 BaseModel

模型继承 模型继承Django 中与普通类继承在 Python 中的工作方式几乎完全相同,但也仍应遵循本页开头的内容。这意味着其基类应该继承django.db.models.Model。...多表继承 Django 支持的第二种模型继承方式是层次结构中的每个模型都是一个单独的模型。每个模型都指向分离的数据表,且可被独立查询和创建。...代理模型继承“Meta”属性 和普通模型一样。 QuerySet 仍会返回请求的模型¶ 当你用 Person 对象查询时,Django 永远不会返回 MyPerson 对象。...多重继承¶ 和 Python 中的继承一样,Django 模型也能继承自多个父类模型。请记住,Python 的命名规则这里也有效。...这些都是普通的 Python 类继承所不需要处理的功能,所以 Django 模型继承和 Python 类继承之间的区别并不是任意的。 这些限制只针对那些是 Field 实例的属性。

2K10

Django User模型扩展

通常情况下,Django提供的User模型能够满足我们大部分的需求,但是有时候我们需要给User添加一些格外的功能和信息。 Django支持两种方式来扩展User模型。...代理模型 如果只是需要添加一些功能性操作,可以基于User创建一个代理模型。 关联模型 如果是需要添加格外的字段信息,则可以创建一个与User关联的模型,两者之间的关系为1对1。...,则可以Django的关联模型获取数据: >>> u = User.objects.get(username='fsmith') >>> mobile = u.profile.mobile 为了在管理后台中将...from django.contrib import admin from django.contrib.auth.admin import UserAdmin from django.contrib.auth.models...因此,当创建用户的时候,profile并不会自动创建,可以通过django.db.models.signals.post_save来创建或者更新profile模型

47510

Django | allauth】useprofile 用户模型扩展

: 在 引入 扩展模型应用路由时 allauth应用 和 userprofile 谁在上方一定要考虑好,不然路由覆盖等会出现页面失效或者报错的情况!!...include('allauth.urls')), path('accounts/', include('userprofile.urls'))]在userprofile应用的models.py 创建扩展模型...migratepython manage.py runserver注册成功图片二、 建立表单在应用下建立文件forms.py,并重写表单,由于注册表单时,只会自定创建user对象,并没有创建userprofile并自动与扩展模型...中,输入我们的管理员账号会报 提供了两个参数的信息,这是因为管理员的用户信息和当前用户信息冲突了,需要signout当前用户当输入密码错误时也会报和上面一样的错误(当时调试了好久)效果:图片参考文献:扩展用户自带模型...(allauth)扩展用户自带user模型(非allauth实现)外键related_namedef str (self)def str (self)verbose_name表单模型和表单的使用✨谢谢你的阅读

17110

Django | allauth】useprofile 用户模型扩展

: 在 引入 扩展模型应用路由时 allauth应用 和 userprofile 谁在上方一定要考虑好,不然路由覆盖等会出现页面失效或者报错的情况!!...include('allauth.urls')), path('accounts/', include('userprofile.urls')) ] 在userprofile应用的models.py 创建扩展模型...python manage.py runserver 注册成功 图片二、 建立表单在应用下建立文件forms.py,并重写表单,由于注册表单时,只会自定创建user对象,并没有创建userprofile并自动与扩展模型...输入我们的管理员账号会报 提供了两个参数的信息,这是因为管理员的用户信息和当前用户信息冲突了,需要signout当前用户 当输入密码错误时也会报和上面一样的错误(当时调试了好久) 图片 效果: 图片 参考文献: 扩展用户自带模型...(allauth) 扩展用户自带user模型(非allauth实现) 外键related_name def str (self) def str (self) verbose_name 表单模型和表单的使用

1.1K10

【JAVA冷知识】JAVA真的不支持继承?让我们用内部类去实现JAVA的多继承

——烽火戏诸侯 《剑来》 ---- 众多周知,对于面向对象语言来讲,JAVA是不支持继承的,只支持单继承,但是提供了接口来补偿。...,其实很简单,关键是对于内部类的特征的掌握,内部类可以继承一个与外部类无关的类,保证了内部类天然独立性,根据这个特性从而实现一个类可以继承多个类的效果 下面我们看一个Demo,声明父母两个接口,实现父母两个类...这种方式实现的多继承,完全可以通组合的方式来实现,我们简单分析一下优缺点 优缺点分析 优点: 通过内部类的方式,把继承关系控制在类的内部,理论上比通过组合的方式更加安全,代码可读性要好一点。...超类的实现有可能会随着发行版本的不同而有所变化,如果真的发生了变化,即使子类的代码完全没有改变,但是子类可能会遭到破坏因而,子类必须要跟着其超类的更新而演变,除非超类是专门为了扩展而设计的,并且具有很好的文挡说明...但是这里同样需要注意的是通过内部类实现多继承要考虑其类的特殊性: 这样生成的List调用add方法会抛不支持的操作的异常,基于Arrays的ArrayList是一个静态私有内部类,除了Arrays能访问以外

61120

python技术面试题(十九)--腾讯

4.Django中ORM如何使用? Django中内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。...使用Django进行数据库开发的步骤如下: 1.配置数据库连接信息。 2.在 models.py中定义模型类。 3.迁移。 4.通过类和对象完成数据增删改查操作。...因为有一段时间没写代码了,对于框架的一些东西记忆并不是很清晰,我只记得当时使用Django框架并没有导包或者调用什么,而是直接写业务逻辑,所以我答的是“Django框架封装了ORM不需要额外安装扩展,可以直接使用...定义模型类时,我们继承了 models.Model,这个模块在 django.db中。我们在查询操作时,需要导入模型类,通过类和对象完成数据增删改查。...8.继承时,所有的方法都会被继承? 答:不会,比如构造函数和析构函数,它们不能被继承。 9.range(0,20)[2:-2]执行结果?

3.7K40

ApacheCN PythonWeb 译文集 20211028 更新

四、我们项目的用户输入 五、改善头条项目的用户体验 六、构建交互式犯罪地图 七、将谷歌地图添加到我们的犯罪地图项目中 八、在我们的犯罪地图项目中验证用户输入 九、构建服务员呼叫应用 十、项目中的模板继承和...1.1 测试和调试 零、序言 一、Django 测试概述 二、这个代码有效?...在网络上的地位 二、创建 Django 项目 三、Django 你好世界 四、使用模板 五、与模型协作 六、通过查询集获取模型数据 七、使用 Django 表单 八、使用 CBV 提高生产力 九、使用会话...、Django 的代码风格 四、构建类似 Twitter 的应用 五、标签简介 六、用 AJAX 增强用户界面 七、关注与评论 八、创建管理界面 九、扩展部署 十、扩展 Django 十一、数据库连接...精通 Django 零、序言 一、Django 简介及入门 二、视图和 URLConf 三、模板 四、模型 五、Django 管理网站 六、表单 七、高级视图和 URLConf 八、高级模板 九、高级模型

2.8K20

Python笔试面试题总结(二)

3、对网络编程了解? --> 多进程与多线程的区别?--> 进程之间通信有哪些方式? 4、你用过哪些 Python 的扩展库?或者哪些标准库?...7、谈谈 Python 中的多继承,了解些什么? 8、asyncio 是干什么的? 9、在 json 转换的时候,json.dump() 不支持哪些类型的数据结构转换?...10、你用 flask 框架时,session用的是自带的?session底层用的是什么数据结构存储的? 11、flask 框架从请求到响应是怎么一个流程 12、flask 框架有什么特点?...它与 Django 相比有些什么不同之处? 13、你在用 flask 时,连接数据库用的是 ORM 还是原生 SQL ,如果是 ORM ,是用的什么库?...16、你了解 SQL 优化? 17、你了解 MySQL 索引? ? 愿关注我们的人都能找到 属于自己的皮球

47410

自定义Django认证系统的技术方案

扩展User模型 代理模型 如果不需要修改表结构,只扩展行为,那么可以使用代理模型。...Django除了User模型,还有2个抽象模型AbstractUser和AbstractBaseUser,从源码中可以看到它们的继承关系: class User(AbstractUser):...这是因为一般继承有2个用途,一是继承父类的属性和方法,并做出自己的改变或扩展,实现代码重用。但是这种方式会导致子类也包含了父类的实现代码,代码强耦合,所以实践中不会这么做。...继承AbstractUser 除了代理模型和OneToOneField,扩展User的新方式是定义新的MyUser并继承AbstractUser,把User替换掉,再添加额外信息。...继承AbstractBaseUser 继承AbstractUser只能做扩展,如果我们想完全自定义用户模型,那么就需要继承AbstractBaseUser,再重写属性和方法。

1.2K10

测试开发进阶(二十五)

格式的数据,其他类型不支持 列表页视图没有分页,过滤,排序功能 Django REST framework 在Django框架基础上,进行二次开发 用于构建Restful API 简称为DRF框架或REST...freamwork框架 特性 提供了强大的Serializer序列化器,可以高效地进行序列化与反序列化操作 提供了丰富的类视图,Mixin扩展类,ViewSet视图集 提供了直观的Web API界面...多种身份认证和权限认证 强大的排序,过滤,分页,搜索,限流等功能 可扩展性,插件丰富 安装 $ pip install djangorestframework 配置 LearnDjango/settings.py...创建序列化 创建 projects/serializer.py 需要输出哪些字段,那么在序列化器中就定义哪些字段 from rest_framework import serializers# 1.继承...其他字段默认即可以进行序列化输出,也可以反序列化输出 write_only=True和 read_only=True相反,只支持反序列化,不支持序列化。

79230

Django 学习笔记之模型(上)

如果你是按照本系列来学习 Django 框架的话,按照前面安装 Django 的方式,你安装 Django 版本应该是最新版本,即 2.0。 那么使用最新 Django 版本来学习可以?...顺便补充下本文用的一些工具的版本:Python 版本是 3.6,Mysql 版本是 5.5 1 模型是什么 在 Web 应用中,数据一般存储到数据库中。Django 中的模型层是跟数据库打交道的层次。...但是这里有个坑,MySQLdb 在支持 Python 2 版本,不支持 Python 3 版本。所以你安装该设配器之后,运行项目会报出错误。Django 官网建议使用替代品 mysqlclient。...,即类(如 Author 和 Book)都需要继承 django.db.models.Model。...13)ImageField:图片字段,它继承了 FileField 所以属性和方法。

1.8K30

Django 学习笔记之模型高级用法(下)

通过 Django 将数据库表反向生成模型时,Django 会默认带上 managed 和 db_table 信息。我主要说下 Meta 一些重要的属性,其他属性你可以通过文档信息进行学习。...verbose_name:给模型设置别名。如果不指定它,Django 会使用小写的模型名作为默认值。...但是 abstract 属性不会被继承。 2)多表继承 这种方式继承方式,子模型的父模型可以一个或者多个。 当父类模型是正常的模型,即不是抽象模型,在数据库中有对应表。...虽然在 Model 层不推荐使用多重继承,但 Django 的 ORM 还是支持这样的使用方式。如果使用多表继承,子模型跟每个父模型都会添加一个一对一的关系。...3)代理模型 使用多表继承时,父类的每个子类都会创建一张新数据表。但是我们只是想扩展一些方法,而不想改变模型的数据存储结构。我们可以将在 Meta 类中增加约束 proxy=True 来实现。

1.7K20

django 解决扩展自带User表遇到的问题

补充知识:Python+ django + pycharm项目之扩展默认user表 django为我们提供了默认的user表,但是在实际的开发项目的基本是不满足实际情况的,所以呢学习web知识,扩展默认...在django项目中,所有的数据库表都是根据各APP的模型来生成的,我们创建项目后第一件事就是要去完善user表,这个利用的知识点就是Python类的继承,假如,我要创建UserProfile类来继承原来的...AbstractUser类,从而继承原来user表的字段,又可以增加自己需要的字段: 在users 用户app的models.py做如下的修改: from django.db import models...from django.contrib.auth.models import AbstractUser # 引入原来的Abstract类 # 创建新的类来继承原来的类,并拓展自己的字段 class...最后迁移数据库,使用makemigrations 和 migrate 就可以完成user表的扩展了,刷新数据库,表是不是已经生成了0.0 以上这篇django 解决扩展自带User表遇到的问题就是小编分享给大家的全部内容了

1.2K60

django 关于User模型

User模型是这个框架的核心部分。他的完整的路径是在django.contrib.auth.models.User。...扩展用户模型Django内置的User模型虽然已经足够强大了。但是有时候还是不能满足我们的需求。比如在验证用户登录的时候,他用的是用户名作为验证,而我们有时候需要通过手机号码或者邮箱来进行验证。...那么这时候我们就需要扩展用户模型了。扩展用户模型有多种方式。这里我们来一一讨论下。 1. 设置Proxy模型: 如果你对Django提供的字段,以及验证的方法都比较满意,没有什么需要改的。...继承自AbstractUser: 对于authenticate不满意,并且不想要修改原来User对象上的一些字段,但是想要增加一些字段,那么这时候可以直接继承django.contrib.auth.models.AbstractUser...继承自AbstractBaseUser模型: 如果你想修改默认的验证方式,并且对于原来User模型上的一些字段不想要,那么可以自定义一个模型,然后继承自AbstractBaseUser,再添加你想要的字段

1.1K30

Django中的多态模型概念、使用场景以及如何实现多态模型

Django开发中,经常遇到需要建立不同类型的模型之间的关系的情况。而使用多态模型可以帮助我们更好地管理这些复杂的关系。本文将介绍Django中的多态模型概念、使用场景以及如何实现多态模型。...多态模型的使用场景多态模型在实际应用中有广泛的使用场景,如下所示:网站评论系统:评论可以针对文章、图片、视频等不同类型的内容,使用多态模型可以轻松地存储不同类型的评论并保持良好的扩展性。...多态模型的实现方法在Django中,我们可以使用两种方法来实现多态模型:抽象基类和第三方库。方法一:抽象基类Django的抽象基类是一种用于定义模型共享字段和行为的方式。...通过创建一个抽象基类,然后让子类继承它,我们可以实现多态模型。...以下是使用 django-polymorphic 实现多态模型的示例:首先,安装 django-polymorphic:pip install django-polymorphic然后,在Django的设置文件中添加以下配置

25320

django 使用框架下auth.mod

需要改动三个地方: 1.models.py   创建模型User,并继承模型类AbstraUser(在此处我增加了一个新的字段手机号) from django.db import models #...手机号') 2.settings.py   新增设置如下,‘first_app’为你的app的名字,‘User’为models.py中第1步新创建的类名(也就是新的表名,此处仍使用原来自带的表名) # 继承原...= 'first_app.User' 3.此处有一个坑,大多数博客都没写此步骤,如代码中,注释掉的是之前我们使用框架自带的User类时所导入的User,而从当前目录models中导入的User才是我们扩展后使用的...User,因为继承后原User已经被替换,此处不改会报错的: error:Manager isn't available; 'auth.User' has been swapped for 'first_app.User...' in Django # from django.contrib.auth.models import User from .models import User  结束,如有不懂或其他见解欢迎添加我的微信交流

47720
领券