今天,我将与您分享如何获得Django表单外部钥匙的价值。其中,将解释Django设置外键。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
本文目录清单:
1. DJANGO 2.0外键处理2.如何将数据插入django中的django中的db 3.插入django的外部钥匙值的想法4.在djangohow中以从主表django2.0获得值- 一个on_delete参数
在django2.0之后,定义外键和一个 - 到一个关系时,您需要添加on_delete选项。为了避免两个表中数据不一致的问题,将报告错误:
TypeError:__init __()缺少1所需的位置参数:'on_delete'
例如:
user = models.onetoonefield(用户)
所有者=型号。
需要更改为:
user = models.onetoonefield(用户,on_delete = models.cascade) - 旧版本(models.cascade)是默认值
所有者= models.foreignkey(userProfile,on_delete = models.cascade)-thisyeeels.cascade in Old版本是默认值
参数描述:
on_delete有五个可选值:cascade,protect,set_null,set_default,set()
级联:此值设置是关节删除。
保护:此值设置将报告完整性错误。
set_null:此值设置将把外部键设置为null,但前提是允许将其作为null。
set_default:此值设置将设置外部键的默认值。
set():此值设置,外部值称为一个函数。
在正常情况下,使用级联。
以下是官方文档描述:
外国基金会接受其他论点,这些论点定义了相对工作方式的默认值。
foreferkey.on_delete?
user = models.foreignkey(user,models.set_null,空白= true,null = true,)
自版本1.9:ON_DELETE的弃用将成为Django 2.0中所需的参数。在较旧的版本中,它默认了Tocascade。
在django.db.models中找到了on_delete的帖子值:
级联[来源]?
级联删除。Django模拟SQL约束在删除级联反应上的行为,并删除包含外键的对象。
保护[来源]?
通过提高django.db.db.integrityerror的子类的保护来防止删除引用对象。
set_null [源]?
设置外国钥匙空;如果null isstrue,这是公开的。
set_default [源]?
将外国人设置为我的默认值;必须设置外国键的默认值。
set()[源]?
set(get_sentinel_user)),),),),)
do_nothing [来源]?
不采取行动。如果您的数据库返回执行引用参考完整性,则除非您手动向数据库添加sqlondeconstraint,否则这将导致IntegragrityError
foreferkey.limit_choices_to?
可以使用对象。
对于Exmple:
Staff_member = models.Foreignkey(用户,on_delete = models.cascade,limit_choices_to = {'is_staff':true},),)
导致在themodelformto上提交的相应列表list hasthat hastis_staff = true。这可能对Django管理员有帮助。
例如,与pythondateModule连接以限制按日期prime的选择时,呼叫表单可能会有所帮助。
defLimit_pub_date_choices():return {'pub_date__lte':dateTime.date.utcnow()} limit_to = limit_date_choices_choices_choices
笔记
边缘案件多次,因此您的呼叫可能会宣传几次。
普通数据项:直接插入
外部密钥数据项:首先获取要插入的外键,然后将其插入普通的,想要插入
多量数据:获取更多要插入的数据对。将普通数据项和外部关键数据项保存在表中之后,使用.ADD方法添加
PS,如果您判断更新或插入?
obj,创建= deploypool.objects.update_or_create(
AA = AA)
打印OBJ,创建
1.首先用需要添加的外键确定数据格式,涉及几个表
2.此数据格式的前端组件扩展到后端
3.后端验证数据,外键的值与获得对象的请求分开
4.使用添加添加外键的值
r1 = prole.objects.get(requ_name = real)#r1指示更多的userInfo数据对
u1 = userInfo(user_name = name,user_pwd =密码,sex = sex,sex,mobileno = mobile,email = email)
u1.save()
U1.Role.Add(R1)
u1.save()
Django将更多数据插入多个数据
您需要使用平板电脑的特定值将默认值设置为创建对象的字段。考虑到前两种方法,看到后者是不科学的。
#1:
default_what = what.objects.filter(name =“ default”)
nation = models.foreignkey(乡村,默认值='it')
#2:
default_id = 1
什么= models.foreignkey(country,default = default_id)
#3:
Class Countrymanager(Models.Manager):
“”“使用self.sigla而不是'id'“”“”“”“”“”“”
def get_by_natural_key(seld,sigla):
返回self.get(sigla = sigla)
班级国家(Models.Model):
对象= countrymanager()
sigla = models.charfield(max_length = 5,unique = true)
def __unicode __(self):
返回u'%s'%self.sigla
班级城市(Models.Model):
nome = model.charfield(max_length = 64,unique = true)
nation = models.foreignkey(乡村,默认值='it')
form.field ['some_field_name']。init ='===请选择选项==='
如果我理解错误,请改善您的问题。
例如,表A具有一个属性A,它是表B的外部键B。在模型中创建B时。ForeignKey,有一个称为RESSIC_NAME的属性设置为d。当特定调用时,temp = a(),temp.d可以调用
让我们谈谈如何获得Django表格的外键的价值。感谢您花时间阅读本网站的内容。有关Django如何设置外部钥匙以及如何获取Django表单外键的值的更多信息。不要忘记在此站点上找到它