当前位置: 首页 > 网络应用技术

如何更新数据Django模型(2023年的最新答案)

时间:2023-03-08 14:29:28 网络应用技术

  简介:本文的首席执行官注释将介绍有关Django模型如何更新数据的相关内容。我希望这对每个人都会有所帮助。让我们来看看。

  我们都知道,Django中的模型设计通常具有两个常用的现场创建时间和修改时间。这两个字段的定义是:

  一般而言,当您修改此表的数据时,修改时间将会更改,但是我遇到的情况即使您修改了此数据的内容,修改时间也没有更改。

  问题解决了:

  有两种修改和更新的方法

  1)保存

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

  2)更新

  使用模型类.objects.filter()。更新(),将返回受影响的行的数量

  修改和更新的第一种方法是触发更新时间更新时间的更新时间。

  因此,如果您更新的数据不会触发更新时间,请检查第二种方法是否用于替换第一个修改方法。

  解决:

  如果要使用更新方法修改多个数据并触发更新时间的剪辑,则可以执行此操作:

  添加修改数据,并将修改时间字段修改为当前时间。

  目前到Django1.7

  修改模型的前提是您已经创建了模型,并使用SynCDB或迁移创建了相应的数据库表。

  然后修改模型,该模型不会修改为数据库表。

  对于特定的事情,请自己查看Django的相应版本。

  不同的版本不相同。

  您的意思是修改了字段。如何同步到数据库端?

  django1.7之前无法实现。Django1.7提供迁移支持表结构同步。

  将用户类的以下扩展添加到Models.py:

  #=========================================================================================

  班级用户版(Models.Model):

  user = models.onetoonefield(用户)

  major = model.textfield(default ='',空白= true)

  地址= model.charfield(max_length = 200,默认值='',空白= true)

  def __unicode __(self):

  返回self.user.username

  def create_user_profile(发件人,实例,创建,** kwargs):

  “”保存新用户时创建用户封装。

  如果创建:

  profile = userProfile()

  propile.user =实例

  profile.save()

  #post_save.connect(create_user_profile,sender =用户)

  ”“”“我不明白,我必须对上线发表评论,以便没有错误,否则将有重复的条目'2'对于键'user_id'”)。是正常的,但与官方文件有差异。混乱,“”“”

  #============================================================================= 123456789111113141516171819

  您还需要修改Admin.py

  ““用户模块扩展”“”“”“”

  class profileinline(admin.stackedinline):

  型号=用户撰写

  #fk_name ='用户'

  max_num = 1

  can_delete = false

  类Customuseradmin(UserAdmin):

  inlines = [profileinline,],]

  admin.Site.unregister(用户)

  Admin.Site.Register(用户,CustomuserAdmin)

  “”““用户模块扩展”“” 12345678910111213

  修改设置的配置.py,增加

  “”“用户模块扩展零件”“”“”“”

  auth_profile_module ='djangoadmin.myadmin.userprofile'

  “”“用户模块扩展完成”“ 123

  根据官方说明,这是应用标签和扩展类的名称。它也应该是创建的应用程序的名称。正式推荐的方法分为“两部分”。连接,我在这里有三个部分,没有错误。

  然后运行python manage.py syncdb,它将在数据库中创建一个响应表,并且有一个User_ID外键字段。

  最后,让我们运行程序并输入用户界面的增加。您会发现您扩展的字段已显示

  每次添加用户时,相应的数据都会添加到扩展表中。修改时,还将修改相应的数据。USER_ID是关联的,因此用户模型扩展已完成。

  如果要在扩展程序中获取内容,则可以通过request.user.get_profile()的方法获取它。地址。获得用户对象后,您可以轻松获得扩展类。

  如果您有一个名为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

  有两种方法:1)通过创建模型类对象保存在数据库中,并且将执行对象的save()方法保存到数据库中。从dateTime导入日期book = bookinfo(btitle = the West the the the the West,bpub_date = date(1988,1,1),面包= 10,bcomment = 10)book.save()海洛因福(hname = sun wukong = sun wukong,hgender = 0,hbookk = bookk = book = book sero.save()here.save()herio2 = heeryinfo(hname = hname = hname = hname =猪八个戒律,hgender = 0,hbook_id = book.id)here.2.save()2)创建通过型号class .objects.create().heroinfo.objects.creats.creats.create(hname = sha wujing,hgender = 0,hgender = 0,hgender = 0,HBook = Book)Heleinfo:Sha Wujing在《黑马程序员社区》中的技术交流,所有方法都可以删除,理解和查询。

  结论:以上是首席执行官注明给所有人的Django模型的全部内容。我希望这对每个人都会有所帮助。如果您想了解有关此信息的更多信息,请记住收集并关注此网站。