Django如何修改行数据(2023年最新整理)

导读:很多朋友问到关于Django如何修改行数据的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

django中怎么动态操作数据库字段?

django的ORM系统不支持修改删除字段的操作,也就是说你在写模型model文件的时候,比如说定义了这个user表,然后包含字段telphone定义,你一旦执行了manage.py syncdb 这个操作,就把表结构往数据库写死了,如果你之是删除了model文件的telphone,数据库是不被重新修改的。这个时候必须用原生SQL解决,也就是说自己写SQL语句让django执行,这样的话会出很多问题,也就是说你执行了alter table users drop column telphone之后,你的model文件不知道你已经对users表结构做了修改,这样会出直接导致django应用的崩溃。所以动态字段不好做。也可能是我才疏学浅,没太理解,也许有高人能做到。不过面对ORM这样的尽量别删除字段。

Django如何修改行数据(2023年最新整理)  第1张

django中,如何实现某行按钮仅对该行数据进行操作

数据在数据库中存储的时候肯定会有一个ID,可以通过这个ID确定删除那条内容(至于怎么通过ID定位到哪条数据就不赘述了)。网页生成删除按钮的时候顺便打上对应ID的删除链接就行了。比如 第一条数据删除按钮对应的是 /del/1/ 第二条 就是/del/2/ 当然这个ID要从后台返回回来,跟数据库中的ID对应上。不然ID跟数据对应不上就麻烦了。

django 修改怎么保证原数据

目前到django1.7 为止 修改model的前提是:你已经创建完model,并且已经 使用 syncdb 或 migrate 创建了相应的数据库表。 然后再 修改model,不会对数据库表产生任何修改的。 具体的东西,自己去看 Django 相应版本的文档去吧 不同版本,不太一样。

django中user扩展表中数据怎么更新

在models.py 中增加如下扩展user的类:

#==================扩展用户====================================

class UserProfile(models.Model):

user = models.OneToOneField(User)

major = models.TextField(default='', blank=True)

address = models.CharField(max_length=200,default='',blank=True)

def __unicode__(self):

return self.user.username

def create_user_profile(sender, instance, created, **kwargs):

"""Create the UserProfile when a new User is saved"""

if created:

profile = UserProfile()

profile.user = instance

profile.save()

#post_save.connect(create_user_profile, sender=User)

""" 不明白的是,我一定注释掉上面这一行,才不会出错,否则会有Duplicate entry '2' for key 'user_id'") ,看意思是,重复了,但不明白为什么重复,注释掉上面的之后,一切正常,但与官方文档又有差异了,迷惑中"""

#==================扩展用户结束================================12345678910111213141516171819

还需要修改admin.py

"""用户模块扩展"""

class ProfileInline(admin.StackedInline):

model = UserProfile

#fk_name = 'user'

max_num = 1

can_delete = False

class CustomUserAdmin(UserAdmin):

inlines = [ProfileInline,]

admin.site.unregister(User)

admin.site.register(User, CustomUserAdmin)

"""用户模块扩展"""12345678910111213

修改settings.py 的配置,增加

"""用户模块扩展部分"""

AUTH_PROFILE_MODULE = 'djangoadmin.myadmin.UserProfile'

"""用户模块扩展完成"""123

按照官方的解释,这里是app label加上扩展类的名字. 应该也就是创建的app的名字,官方推荐的方式就两个部分用”.”连接起来,我这里有三个部分,也没有报错。

然后运行 python manage.py syncdb ,这是会在数据库中创建响应的表,并且有user_id这个外键字段.

最后,我们来运行一下程序,并进入到增加用户界面中,你会发现,你扩展的字段都显示出来了

每次增加用户,都会在扩展的表中增加相应的数据,修改的时候,也会修改响相应的数据,通过 user_id 来关联,这样就完成了user model的扩展。

如果要获取扩展表中的内容,可以通过 request.user.get_profile().address 这种方式来获取. 得到 User对象后,就能很方便的得到扩展的类.

Django rest framework + drf-yasg 关于 api 文档 web 页面数据修改方法

operation_summary :操作名称如下图

operation_description :接口介绍 如下图

operation_id :操作方法名如下图

manual_parameters : 修改 Parameters 中参数说明

request_body :post 发送内容 如下图

responses :响应内容 如下图

enum : 定义改字段可选的参数值,默认写第一个。如下图

description : 字段描述

type : 字段需要什么类型的数据

             TYPE_OBJECT = "object"

             TYPE_STRING = "string"

             TYPE_NUMBER = "number"

             TYPE_INTEGER = "integer"

             TYPE_BOOLEAN = "boolean"

             TYPE_ARRAY = "array"

             TYPE_FILE = "file"

format : 进行验证的方式

             FORMAT_DATE = "date"

             FORMAT_DATETIME = "date-time"

             FORMAT_PASSWORD = "password"

             FORMAT_BINARY = "binary"

             FORMAT_BASE64 = "bytes"

             FORMAT_FLOAT = "float"

             FORMAT_DOUBLE = "double"

             FORMAT_INT32 = "int32"

             FORMAT_INT64 = "int64"

             FORMAT_EMAIL = "email"

             FORMAT_IPV4 = "ipv4"

             FORMAT_IPV6 = "ipv6"

             FORMAT_URI = "uri"

             FORMAT_UUID = "uuid"

             FORMAT_SLUG = "slug"

             FORMAT_DECIMAL = "decimal"

django动态生成的表格,给每行添加按钮,提交数据的时候,怎么只提交本行的数据给url?

你还是没做过类似的东西吧。方法有很多种,最简单的是设置id,每一行的设置为str(index+1)类似,提交方法写在js,js查明该行的id就知道是那一行了,你弄个这么大范围的form岂不是把所有的input都提交了

结语:以上就是首席CTO笔记为大家整理的关于Django如何修改行数据的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

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

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

(0)
上一篇 2023-09-23 13:06
下一篇 2023-09-23 13:06

相关推荐

发表回复

登录后才能评论