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

如何实现Django班联合会(2023年最新的完成)

时间:2023-03-05 18:27:05 网络应用技术

  简介:今天,首席主席团将与您分享Django如何意识到课堂的相关内容。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  django2.0模型外键,一个-to -One 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

  

  笔记

  边缘案件多次,因此您的呼叫可能会宣传几次。

  长时间连接通常用于手机服务。建议您先连接到龙卷风,然后连接到Django。

  同时,我们必须修改数据库连接,然后将数据库更改为连接池

  使用JQuery的Ajax方法从服务器加载JSON数据到客户端可以实现省级和市政级别关联的效果。

  详细信息如下:

  1)页面初始化时,首先加载所有省份;

  2)选择省,AJAX传输编码到服务器,服务器返回所有城市以根据所选省的编码保存所有城市。

  这可以动态地实现省级和市政级别的关联的影响。

  在不需要删除的一个 - to -One和外键中,add_delete = models.do_nothing参数

  去刘江的django教程,查看手柄,免费,并且该项目非常令人兴奋。

  对于多条件查询,我们希望在选择菜单项后,根据我们选择的第一个菜单可以显示所有sub -menu项目。这是本文中提到的类菜单的问题。有许多实现类菜单的方法。基于作者进行的一个小实验,本文简要介绍了如何通过XML实现类菜单的功能。

  首先,有必要定义XML文件以存储类菜单的信息。我们命名了query.xml。代码如下:

  ?XML版本=“ 1.0”编码=“ GB2312”?

  信息

  课程

  文本软件工程/文本

  值1/值

  /课程

  课程

  文本数据结构/文本

  value2/value

  /课程

  课程

  文本操作系统/文本

  value3/value

  /课程

  课程

  文本计算机组成原理/文本

  值4/值

  /课程

  老师

  文字老师张/文字

  值1/值

  /老师

  老师

  文字老师li/文字

  value2/value

  /老师

  老师

  文字老师刘/文字

  value3/value

  /老师

  老师

  文字老师/文字

  值4/值

  /老师

  班级

  文字1/文字

  值1/值

  /班级

  班级

  文字2/文字

  value2/value

  /班级

  班级

  文字三类/文字

  value3/value

  /班级

  班级

  文字四类/文字

  值4/值

  /班级

  /信息

  然后创建一个名为query.html的html文件

  在query.html中,首先创建一个表单

  表格ID =“ queryform”

  选择ID =“关键字”名称=“关键字” onChange =“ ShowDetail()”

  选项值=“默认”默认/选项

  选项值=“ 1”课程/选项

  选项值=“ 2”老师/选项

  选项值=“ 3”类/选项

  /选择

  选择ID =“ content” name =“ content” onChange =“ showvalue()”

  选项值=“默认”默认/选项

  /选择

  /形式

  从上面的代码可以看出,当我们选择第一个级别菜单时,将触发ShowDetail方法。这是由JavaScript实现的。因此,我们还需要定义ShowDetail方法。实际上,该代码如下:

  功能showdetail(){

  var document_xml = new ActiveXObject(“ Microsoft.xmldom”);

  document_xml.load(“ query.xml”);//加载info.xml

  var rootnode = document_xml.documentElement;//获取info.xml文档的根节点

  var keyword = document.getElementByidx(“关键字”)。价值;

  var细节;//用于存储辅助菜单内容,这是一个数组对象

  var content = document.getElementByidx(“ content”);

  content.options.length = 0;//首先清除

  if(关键字==“默认”){

  var option =新选项(“默认”,“默认”);

  content.Add(option);

  } 别的 {

  if(关键字==“ 1”){{{

  demails = document_xml.getElementsbytagname_r(“ course”);

  } else if(关键字==“ 2”){

  详细信息= document_xml.getElementsbytagname_r(“老师”);

  } else if(关键字==“ 3”){

  详细信息= document_xml.getElementsbytagname_r(“ class”);

  }

  for(var i = 0; idetails.length; i ++){

  var Xtext =详细信息[i] .childnodes [0] .firtchild.nodevalue;//获取文字

  var xvalue =详细信息[i] .childnodes [1] .firtchild.nodevalue;//将文本获取应有的价值

  var option = new选项(Xtext,xvalue);

  content.Add(option);

  }

  }

  }

  从上面的代码可以看出,ShowDetail方法根据不同的菜单选项显示了相应的子-Menu。这涉及通过JavaScript读取XML文件的操作。请参阅源代码的注释部分。请记住将内容与XML文件结合使用。

  显示第二级菜单后,我们可以选择。选择后,我们将调用ShowValue方法显示选定的子-Menu项目。ShowValue的定义如下:

  函数showvalue(){

  var content = document.getElementByidx(“ content”);

  var contentText = content.options [content.SelectIndIndex] .text;//获取文本值

  var contentValue = document.getElementByIdx(“ content”)。价值;//获取文字

  警报(contentValue+“”+contentText);

  }

  在这种方法中,请注意选择中文本值的获取。它与选择表单域域的值不同。有关详细信息,请参考代码及其注释。

  包装头部/头部之间的两种方法。请记住写脚本语言=“ javascript”和/脚本,然后您可以打开query.xml以查看效果。

  我不知道这对房东是否有用,希望它对房东有所帮助。

  首要的关键

  外部钥匙

  指数

  定义:

  徽标的唯一迹象,无法重复或被允许为空

  表的外键是另一个表的主要键。

  该领域没有重复值,但可以具有空的值

  影响:

  用于确保数据完整性

  用于与其他表建立联系

  它是为了提高查询分类的速度

  数字:

  只有一个主钥匙

  一张表可以具有多个外部键

  一张桌子可以具有多个唯一索引

  设置索引

  要设置外部键,在参考表(PC表)和参考表(部分表)中,必须将相应的两个字段设置为索引。

  过去表:

  Alter表零件添加索引IDX_MODEL(模型);

  该句子的含义是在零件表中添加索引,该索引基于模型字段,这导致此索引吸引名称IDX_MODEL。

  PC表相似:

  Alter Table PC添加索引IDX_CPUMODEL(CPUMODEL);

  定义外键

  以下是两个表之间描述的“约束”。由于PC的CPU模型必须参考零件表中的相应模型,因此我们将PC表的CPUMOL字段设置为“外键”,即,即,即此键的参考值来自其他表。

  Alter Table PC添加约束FK_CPU_MODEL

  外键(cpumol)

  参考零件(模型);

  水平关节操作

  级别更新:更新主键时,外部键也会更新。

  定义外键时,您可以在末尾添加此关键字:

  在Update Cascade上;

  也就是说,当更新主表时,子观察(我们)生成了链更新操作,并且似乎有些人喜欢称之为“类”操作。

  如果您完全编写此语句,则是:

  Alter Table PC添加约束FK_CPU_MODEL

  外键(cpumol)

  参考零件(模型)

  在Update Cascade上;

  类关节删除:删除主键时,将删除外键。

  Alter Table PC添加约束FK_CPU_MODEL

  外键(cpumol)

  参考零件(模型)

  在Delete Cascade上;

  级别链接更新和删除:

  在DELETE CASCADE上更新级联

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