django如何更新数据?

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

如何更新Django 的ManyToMany 字段

更新Django 的ManyToMany 字段:

1、在创建一个新的的时候:

p1=Post.objects.create(title=title,content=content,pub_date=pub_date,author=author)

p1.label.add(p)

其中label是ManyToMany 字段。

2、更新的时候:

p1=Post.objects.filter(id=num).save(title=title,content=content,pub_date=pub_date,author=author)

3、如果此时误用update,则成了批量更新,会发生错误。

models.py中增加了字段,django中怎样更新

如果你是使用django1.7以上,那么自带migrations功能,可以在生成迁移文件后,打开0001_initial.py(类似这样的文件, 需要与你对应的app关联起来,就是models所在的路径下中的migrations文件夹),然后修改里面中models中对应的class model(),然后找到类似这个operations = [

migrations.CreateModel(...),

# mysql specific

migrations.RunSQL(\'alter table 表名 auto_increment=9995\'),#数据库不同,语句可能不同

]

其实这个可以通过修改数据库中的表进行操作。这样比较快。自己多找点资料吧。

django如何更新数据?  第1张

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对象后,就能很方便的得到扩展的类.

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

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

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

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

相关推荐

发表回复

登录后才能评论