首页>>后端>>Python->django如何更改模型(2023年最新解答)

django如何更改模型(2023年最新解答)

时间:2023-12-07 本站 点击:0

导读:本篇文章首席CTO笔记来给大家介绍有关django如何更改模型的相关内容,希望对大家有所帮助,一起来看看吧。

Django 1.10修改模型,应用视图函数以及路由后运行报错

项目路由如下:

from django.conf.urls import url

from django.contrib import admin

from blog import *

在这里面引入inclue 模块

from django.conf.urls import include

django 有没有内置用字典更新模型的方法

from django.db import models

class Document(models.Model):

name = models.CharField(max_length=255)

format = models.ForeignKey('Format')

class Comment(models.Model):

document = models.ForeignKey(Document, related_name='comments')

content = models.TextField()

class Format(models.Model):

type = models.CharField(choices=( ('Text file', 'text'),

('ePub ebook', 'epub'),

('HTML file', 'html')),

max_length=10)

Django model update(修改) 修改时间并没有触发的问题

我们都知道 django 里面模型设计 一般会有常用的两个字段 创建时间 和 修改时间,这两个字段的定义是这样的:

一般来说,你对这个表的数据有修改的时候,修改时间会随之变动,但是我遇到一个情况,是即使你修改了这条数据的内容,但是修改时间并没有变动。

问题解决:

修改更新有两种方法

1)save

修改模型类对象的属性,然后执行save()方法

2)update

使用模型类.objects.filter().update(),会返回受影响的行数

第一种修改更新的方法是会触发updated = models.DateTimeField(auto_now=True, verbose_name="更新时间")字段的更新时间的,第二种不会触发。

所以如果你更新的数据没有触发更新时间,检查是否用了第二种方法,换成第一种修改的方式就可以了。

解决:

如果要用 update 这种方法修改多条数据,触发更新时间的字段,可以这样做:

加一条修改数据,把修改时间这个字段修改成当前时间就可以了。

如何将django orm模型 写入数据库

假如你有一个app叫做myapp,模型models.py代码如下:

from django.db import models

class Person(models.Model):

    first_name = models.CharField(max_length=30)

    last_name = models.CharField(max_length=30)

django数据库迁移一般就两个命令,命令行执行

1,生成数据表

python manage.py migrate

相当于执行下面sql语句

CREATE TABLE myapp_person (

    "id" serial NOT NULL PRIMARY KEY,

    "first_name" varchar(30) NOT NULL,

    "last_name" varchar(30) NOT NULL

);

2,修改模型models.py字段后可以用重建命令,我们在模型中添加一个字段

from django.db import models

class Person(models.Model):

    first_name = models.CharField(max_length=30)

    last_name = models.CharField(max_length=30)

    bothday= models.DateField("生日", default=datetime.date.today)

然后在命令行执行

python manage.py makemigrations

最后执行命令python manage.py runserver,即可在本地浏览器打开127.0.0.1:8000

Django模型(三)

知识要点:

表关系的实现

一对多表关系

在Mysql中一对多是通过外键实现的,在django模型中通过ForeignKeyfield类型实现。

一对一表关系

在Mysql中一对一是通过外键加唯一键实现的,在django模型中通过OneToOneField类型实现。

多对多表关系

在Mysql中多对多是通过中间表外键加联合唯一键实现的,在django模型中通过ManyToManyField类型实现。中间表模型会自动帮我们创建好。

例子:

关系表中数据的操作

django更新模型的部分字段怎么做

在class里更新字段

运行python manage.py makemigrations记录迁移

运行Pythonmanage.py migrate 将更新实施到数据库表中

这个过程中可能会出现很多问题,比如已有的数据记录怎么更新,关联的对象怎么处理。详细可参考刘江的博客和教程:liujiangblog-com

结语:以上就是首席CTO笔记为大家介绍的关于django如何更改模型的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/18536.html