多个model怎么加django(2023年最新整理)

导读:本篇文章首席CTO笔记来给大家介绍有关多个model怎么加django的相关内容,希望对大家有所帮助,一起来看看吧。

django model里怎么实现外键对多种model

首先题主用的Django版本是什么,django貌似没见过ForeignModel,根据orm,ForeignKey实际上就是sql里面的外键,个人理解楼主的题目是能不能一个字段对应多个其他表,如下:

class WhatAreYouTryToAsk:

filed_XXX = models.ForeignKey((ModelA,ModelB,))

这是不科学的啊亲,对于sql来说也不会一个字段能对应多个外键,想实现这种效果只能是有一张ModelA,ModelB的中间表,而filed的外键对应这张中间表

class MiddleTable(models.Model):

model_a = models.ForeignKey(ModelA)

model_b = models.ForeignKey(ModelB)

class WhatAreYouTryToAsk:

filed_XXX = models.ForeignKey(MiddleTable)

简单的说就是ModelA和ModelB有一个多对多的关系,上面的方法是显示的指明一个MiddleTable表,实时上可以使用Django里面的ManyToMany,ManyToMany的实际上会建一张中间表,因此你可以在ModelA或ModelB建立一个ManyToMany的字段,具体ManyToMany的用法请查阅文档。

class ModelA(models.Model):

model_bs = ManyToMany(ModelB)

class WhatAreYouTryToAsk:

filed_XXX = models.ForeignKey(ModelA)

# or this, 具体实现看需求

# filed_XXX = models.ForeignKey(ModelB)

多个model怎么加django(2023年最新整理)  第1张

Django model 遇到查询条件组合比较多的情况下怎么写

Model是django项目的基础,如果一开始没有好好设计好,那么在接下来的开发过程中就会遇到的问题.然而,大多数的开发人员都容易在缺少思考的情况下随意的增加或修改model.这样做的后果就是,在接下来的开发过程中,我们不得不做出努力来修正这些错误.因此,在修改model时,一定尽可能的经过充分的考虑再行动!以下列出的是我们经常用到的一些工具和技巧:South,用于数据迁移,我们会在每个django项目中都用到.但到django1.7时,将会有django.db.migrations代替.django-model-utils,用于处理常见的模式,例如TimeStampedModel.django-extensions,主要用到shell_plus命令,该命令会在shell中自动载入所有的app的model1.基本原则第一,将model分布于不同的app中.如果你的django项目中,有一个app拥有超过20个model,那么,你就应当考虑分拆该app了.我们推荐每个app拥有不超过5个model.第二,尽量使用ORM.我们需要的大多数数据库索引都能通过Object-Relational-Model实现,且ORM带给我们许多快捷方式,例如生成SQL语句,读取/更新数据库时的安全验证.因此,如果能使用简单的ORM语句完成的,应当尽量使用ORM.只有当纯SQL语句极大地简化了ORM语句时,才使用纯SQL语句.并且,在写纯SQL语句是,应当优先考虑使用raw(),再是extra().第三,必要时添加index.添加db_index=True到model中非常简单,但难的是理解何时应该添加.在建立model时,我们事先不会添加index,只有当以下情况时,才会考虑添加index:在所有的数据库查询中使用率在10%-25%时或当有真实的数据,或能正确估计出使用index后的效果确实满意时第四,注意model的继承.model的继承在django中需要十分小心,django提供了三种继承方式,1.abstractbaseclass继承(不要和Pyhton标准库的abc模块搞混),2.多表(multi-table)继承,3.proxymodel继承.

如何使用Django生成Model

使用Django生成Model方法如下:

一、将旧的数据库添加到您的项目

编辑数据库设置。你需要告诉Django你的数据库连接参数是什么,以及数据库的名称,要做到这一点需要编辑数据库设置,并在“default”连接下面的键赋值。我们首先要打开settings.py文件,在文件中找到“DATABASES”,然后开始赋值。下面的数字序号和下图中数字序号对应。

①使用的数据库后端,这里使用PostgreSQL数据库。

②使用的数据库名称。

③连接到数据库时使用的用户名。

④连接到数据库时使用的密码。

⑤连接到数据库时使用的主机,这里使用的是本地主机。

⑥连接到数据库时使用的端口。

二、自动生成Model(模型)

1、创建Model(模型)。Django附带一个名为inspectdb的实用程序,可以通过检查现有的数据库来创建Model(模型)。您可以通过运行以下命令来实现。

2、在指定的文件中创建Model(模型)。将其另存为指定的文件。您可以通过运行以下命令来实现。

3、具体例子。现在我们通过一个具体例子的代码,让大家能更好理解。下面的数字序号和下图中数字序号对应。

①在项目中新建一个名为“legacy”的文件夹。

②在“legacy”的文件夹中创建一个名叫“legacy”的应用(app)。

③在指定文件(apps/legacy/models.py)中自动生成Model。

结语:以上就是首席CTO笔记为大家整理的关于多个model怎么加django的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于多个model怎么加django的相关内容别忘了在本站进行查找喔。

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23
下一篇 2023-09-23

相关推荐

发表回复

登录后才能评论