问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

django外键如何赋值(2023年最新分享)

发布网友 发布时间:2024-09-26 03:27

我来回答

1个回答

热心网友 时间:2024-10-19 09:25

导读:今天首席CTO笔记来给各位分享关于django外键如何赋值的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

django插入外键值思路

1.先确定需要添加添加的带有外键的数据格式,涉及几个表

2.前端组装好这个数据格式传回后端

3.后端验证数据,从请求中分离出外键的值,进行获取对象

4.使用add进行添加外键的值

r1=Role.objects.get(role_name=role)#r1表示UserInfo的多对多数据

u1=UserInfo(user_name=name,user_pwd=password,sex=sex,mobileno=mobile,email=email)

u1.save()

u1.role.add(r1)

u1.save()

django插入多对多数据

django2.0外键处理

Django2.0里model外键和一对一的on_delete参数

在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错:

TypeError:__init__()missing1requiredpositionalargument:'on_delete'

举例说明:

user=models.OneToOneField(User)

owner=models.ForeignKey(UserProfile)

需要改成:

user=models.OneToOneField(User,on_delete=models.CASCADE)?????--在老版本这个参数(models.CASCADE)是默认值

owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE)???--在老版本这个参数(models.CASCADE)是默认值

参数说明:

on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值

CASCADE:此值设置,是级联删除。

PROTECT:此值设置,是会报完整性错误。

SET_NULL:此值设置,会把外键设置为null,前提是允许为null。

SET_DEFAULT:此值设置,会把设置为外键的默认值。

SET():此值设置,会调用外面的值,可以是一个函数。

一般情况下使用CASCADE就可以了。

下面是官方文档说明:

ForeignKeyacceptsotherargumentsthatdefinethedetailsofhowtherelationworks.

ForeignKey.on_delete?

WhenanobjectreferencedbyaForeignKeyisdeleted,DjangowillemulatethebehavioroftheSQLconstraintspecifiedbytheon_deleteargument.Forexample,ifyouhaveanullableForeignKeyandyouwantittobesetnullwhenthereferencedobjectisdeleted:

user=models.ForeignKey(User,models.SET_NULL,blank=True,null=True,)

Deprecatedsinceversion1.9:on_deletewillbecomearequiredargumentinDjango2.0.InolderversionsitdefaultstoCASCADE.

Thepossiblevaluesforon_deletearefoundindjango.db.models:

CASCADE[source]?

Cascadedeletes.DjangoemulatesthebehavioroftheSQLconstraintONDELETECASCADEandalsodeletestheobjectcontainingtheForeignKey.

PROTECT[source]?

PreventdeletionofthereferencedobjectbyraisingProtectedError,asubclassofdjango.db.IntegrityError.

SET_NULL[source]?

SettheForeignKeynull;thisisonlypossibleifnullisTrue.

SET_DEFAULT[source]?

SettheForeignKeytoitsdefaultvalue;adefaultfortheForeignKeymustbeset.

SET()[source]?

SettheForeignKeytothevaluepassedtoSET(),orifacallableispassedin,theresultofcallingit.Inmostcases,passingacallablewillbenecessarytoavoidexecutingqueriesatthetimeyourmodels.pyisimported:

fromdjango.confimportsettingsfromdjango.contrib.authimportget_user_modelfromdjango.dbimportmodelsdefget_sentinel_user():returnget_user_model().objects.get_or_create(username='deleted')[0]classMyModel(models.Model):user=models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.SET(get_sentinel_user),)

DO_NOTHING[source]?

Takenoaction.Ifyourdatabasebackendenforcesreferentialintegrity,thiswillcauseanIntegrityErrorunlessyoumanuallyaddanSQLONDELETEconstrainttothedatabasefield.

ForeignKey.limit_choices_to?

SetsalimittotheavailablechoicesforthisfieldwhenthisfieldisrenderesingaModelFormortheadmin(bydefault,allobjectsinthequerysetareavailabletochoose).Eitheradictionary,aQobject,oracallablereturningadictionaryorQobjectcanbeused.

Forexample:

staff_member=models.ForeignKey(User,on_delete=models.CASCADE,limit_choices_to={'is_staff':True},)

causesthecorrespondingfieldontheModelFormtolistonlyUsersthathaveis_staff=True.ThismaybehelpfulintheDjangoadmin.

Thecallableformcanbehelpful,forinstance,whenusedinconjunctionwiththePythondatetimemoletolimitselectionsbydaterange.Forexample:

deflimit_pub_date_choices():return{'pub_date__lte':datetime.date.utcnow()}limit_choices_to=limit_pub_date_choices

Iflimit_choices_toisorreturnsaQobject,whichisusefulforcomplexqueries,thenitwillonlyhaveaneffectonthechoicesavailableintheadminwhenthefieldisnotlistedinraw_id_fieldsintheModelAdminforthemodel.

Note

Ifacallableisusedforlimit_choices_to,itwillbeinvokedeverytimeanewformisinstantiated.Itmayalsobeinvokedwhenamodelisvalidated,forexamplebymanagementcommandsortheadmin.Theadminconstructsquerysetstovalidateitsforminputsinvariousedgecasesmultipletimes,sothereisapossibilityyourcallablemaybeinvokedseveraltimes.

js中如何对django模板中的变量进行赋值

django模版变量是属于后台服务器端的,而Js是前台的,没法给它们赋值。你应该在服务器段就赋值,然后传给前端页面,render_to_response这个函数是可以添加模版变量的,到时候直接在页面上使用就可以了,具体你可以查查render_to_response这个函数的用法

django如何设置外键

先给data赋值了之后,再去用p保存。例如:

data=Lessonruntime()

data.***=***#(给data的列赋值)

data.save()#保存data(注,只有在新建data数据时才要,否则用Lessonruntime.object.get()来获取data的值)

p=Checkinlog(lessonruntimeid=data)

p.save()

这样就可以了。

不可以用p=Checkinlog(lessonruntimeid=1134)的方式进行赋值。

Django表关联对象及多表查询

首先建立Student,Dpartment,Course,Stu_info表

一对多表关系数据的添加:

1.第一种方式就是跟之前的一样,用传参的方法添加,需要注意的是外键的值必须是关联表中已经存在的值.

2.第二种方式是用的属性赋值的方式,因为我们在模型类有定义了一个department的属性,而这个属性的对象的类型必须是department表的类实例对象

表关联对象的访问:

Student的模型类中我们有定义department的属性,所以当我们去访问的时候,可以直接通过student.department的形式去找到某个学生的所属学院是哪个.

那么如果我们也希望在在访问某个学院的实现对象的学生的时候改怎么访问呢???

表关联对象的访问:

可以在定义时设置related_name参数来覆盖foo_set的名称.

clear()从关联的对象集中删除所有的对象

多表查询----跨关联关系的查询:

Django提供一种强大而又直观的方式来“处理”查询中的关联关系,它在后台自动帮你处理JOIN。若要跨越关联关系,只需使用关联的模型字段的名称,并使用双下划线分隔,直至你想要的字段:

它还可以反向工作。若要引用一个“反向”的关系,只需要使用该模型的小写的名称。

结语:以上就是首席CTO笔记为大家整理的关于django外键如何赋值的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django外键如何赋值的相关内容别忘了在本站进行查找喔。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
绿茶要猛冲吗,绿茶鲜嫩不需要(绿茶冲泡的正确方式) 绿茶为什么越好越不耐泡 绿茶要泡几泡?哪种绿茶最耐泡? 哪种绿茶最耐泡 职场故事:美女职员遇到暴躁老板 老板脾气坏得要命,我该怎么办 老板老爱发脾气,我们应该怎么做呀? 害怕老总发脾气怎么办 网络上用名字测和另一个人的关系准确吗 一个男生把自己的名字和另一个人的名字放在一起,中间放个"&"符号... django两个外键怎么写(2023年最新解答) 请问staff有复数形式吗?有的话,是什么? 请问staff有复数形式吗? 广西大学什么专业 泰康人寿保险公司怎么样可靠不可靠呢? 上海泰康投资管理有限公司真的在招文员吗 广西大学最好是专业是什么 上海泰康投资管理有限公司是骗子公司吗?我该不该去面试? ...想考研,考经管方面的,西安哪家考研培训机构比较好~ 广西大学土木建筑工程实验教学中心组织结构 上海泰康投资管理有限公司 泰康保险公司正规吗? 我的ipad越狱了,打开ipad,里面的软件都没了但是还占内存,safari也打不... 我的IPAD4.3.1越狱进入 DFU模式 前黑屏了,现在什么开关反应都没有,连... 现金流量表的编制口诀详解:如何根据利润表调整各项目? 我的ipad2越狱后 下了插件重启图表就变得很散乱,设置这些都进不去了... 我的ipad越狱失败,开机不能没出线连接itunes的画面,怎么恢复啊... 心慌头晕浑身无力是怎么回事 胸闷呼吸困难,心慌气短,虚弱乏力,头晕头发蒙,一阵心跳快,手脚就发软... 考研复试的面试有什么技巧? 科目一考试网上预约流程及操作方法 敲诈勒索罪金额多少钱 敲诈勒索罪一般立案金额是多少立案金额法律相关规定 白萝卜泡菜较简单做法 怎样做白萝卜泡菜 如何担负起新的文化使命,建设中华民族现代文明 大学生该如何担负起建设中华民族现代文明的重任呢? 一念逍遥当中八荒逐鹿应该要怎么玩介绍_一念逍遥当中八荒逐鹿应该要怎么... 问鼎八荒怎么竞猜成功 敲诈勒索行为多久后会被判刑 敲诈勒索多少元可以判刑 敲诈勒索构成本罪的金额达到多少判刑 24×101减方框简便计算? 101乘以24运用简便方法计算下面各题。 O.24x1O1简便计算 101×24等于100×24加括号运用的运算定律是什么? 24×101-24的简便运算 vivo怎么注销云服务账号和密码 24x101一4的简便计算 vivo手机账号能注销吗? LEED认证体系如何根据不同建筑类型进行划分和适用?