简介:本文的首席执行官注释将介绍有关Django如何改变模型的相关内容。我希望这对每个人都会有所帮助。让我们来看看。
项目路线如下:
来自django.conf.urls导入URL
来自django.contrib导入管理
从博客导入*
在此处介绍包含模块
来自django.conf.orks导入包括
来自django.db导入模型
类文档(Models.Model):
name = models.charfield(max_length = 255)
格式= model.foreignkey('格式')
班级评论(Models.Model):
document = models.foreignkey(documen,rection_name ='注释'))))
content = model.textfield()
类格式(Models.Model):
type = model.charfield(choices =('文本文件','text'),
('epub ebook','epub'),
('html文件','html'),),
max_length = 10)
我们都知道,Django中的模型设计通常具有两个常用的现场创建时间和修改时间。这两个字段的定义是:
一般而言,当您修改此表的数据时,修改时间将会更改,但是我遇到的情况即使您修改了此数据的内容,修改时间也没有更改。
问题解决了:
有两种修改和更新的方法
1)保存
修改模型类对象的属性,然后执行save()方法
2)更新
使用模型类.objects.filter()。更新(),将返回受影响的行的数量
修改和更新的第一种方法是触发更新时间更新时间的更新时间。
因此,如果您更新的数据不会触发更新时间,请检查第二种方法是否用于替换第一个修改方法。
解决:
如果要使用更新方法修改多个数据并触发更新时间的剪辑,则可以执行此操作:
添加修改数据,并将修改时间字段修改为当前时间。
如果您有一个名为MyApp的应用程序,则模型型。Py代码如下:
来自django.db导入模型
班级人(Models.Model):
first_name = models.charfield(max_length = 30)
last_name = models.charfield(max_length = 30)
Django数据库迁移通常是两个命令,命令行执行
1.生成数据表
python manage.py迁移
等效地执行以下SQL语句
创建表myapp_person(
“ ID”服务器不是零主键,
“ first_name” varchar(30)不为null,
“ last_name” varchar(30)不是null
);
2.修改Model Model.py字段后,您可以使用重建命令。我们在模型中添加了一个字段
来自django.db导入模型
班级人(Models.Model):
first_name = models.charfield(max_length = 30)
last_name = models.charfield(max_length = 30)
doday = model.datefield(“生日”,默认= dateTime.date.today)
然后在命令行中执行
python manage.py makemigrations
最后执行命令python manage.py runserver,在本地浏览器中打开127.0.0.1:8000
知识的要点:
桌子关系的实现
一个-to -Multi -ptable关系
MySQL中的一对主要是通过外部键实现的,在Django模型中,它是通过ExourneKeyfield类型实现的。
一个 - 一张桌子关系
MySQL中的一个-to -ONE通过外部密钥和唯一键实现,并通过Django模型中的OneToOneField类型实现。
多站
MySQL中的大多数对主要是通过中间表和唯一键实现的,并通过Django模型中的ManyTomanyfield类型实现。中间手表模型将自动创建。
例子:
关系表中数据的操作
在课堂中更新字段
运行python manage.py makemigrations记录迁移
运行pythonmanage.py迁移,并在数据库表中实现了更新
此过程中可能存在许多问题,例如如何更新现有数据记录以及如何处理关联对象。有关详细信息,请参阅Liu Jiang的博客和教程:Liujiangblog-com
结论:以上是首席执行官注明给所有人的Django的所有内容。我希望这对每个人都会有所帮助。如果您想了解有关此信息的更多信息,请记住收集并关注此网站。