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

如何与Django中的其他表类关联?

时间:2023-03-06 15:58:27 网络应用技术

  简介:许多朋友询问有关Django其他手表类别与用户有何关系的问题。本文的首席执行官注释将为您提供详细的答案,以供您参考。我希望这对每个人都会有所帮助!让我们一起看看!

  将用户类的以下扩展添加到Models.py:

  #=========================================================================================

  班级用户版(Models.Model):

  user = models.onetoonefield(用户)

  major = model.textfield(default ='',空白= true)

  地址= model.charfield(max_length = 200,默认值='',空白= true)

  def __unicode __(self):

  返回self.user.username

  def create_user_profile(发件人,实例,创建,** kwargs):

  “”保存新用户时创建用户封装。

  如果创建:

  profile = userProfile()

  propile.user =实例

  profile.save()

  #post_save.connect(create_user_profile,sender =用户)

  ”“”“我不明白,我必须对上线发表评论,以便没有错误,否则将有重复的条目'2'对于键'user_id'”)。是正常的,但与官方文件有差异。混乱,“”“”

  #============================================================================= 123456789111113141516171819

  您还需要修改Admin.py

  ““用户模块扩展”“”“”“”

  class profileinline(admin.stackedinline):

  型号=用户撰写

  #fk_name ='用户'

  max_num = 1

  can_delete = false

  类Customuseradmin(UserAdmin):

  inlines = [profileinline,],]

  admin.Site.unregister(用户)

  Admin.Site.Register(用户,CustomuserAdmin)

  “”““用户模块扩展”“” 12345678910111213

  修改设置的配置.py,增加

  “”“用户模块扩展零件”“”“”“”

  auth_profile_module ='djangoadmin.myadmin.userprofile'

  “”“用户模块扩展完成”“ 123

  根据官方说明,这是应用标签和扩展类的名称。它也应该是创建的应用程序的名称。正式推荐的方法分为“两部分”。连接,我在这里有三个部分,没有错误。

  然后运行python manage.py syncdb,它将在数据库中创建一个响应表,并且有一个User_ID外键字段。

  最后,让我们运行程序并输入用户界面的增加。您会发现您扩展的字段已显示

  每次添加用户时,相应的数据都会添加到扩展表中。修改时,还将修改相应的数据。USER_ID是关联的,因此用户模型扩展已完成。

  如果要在扩展程序中获取内容,则可以通过request.user.get_profile()的方法获取它。地址。获得用户对象后,您可以轻松获得扩展类。

  该表链接到Django中的模型。您需要将模型指定为用户模型,以便Django的身份系统将使用与模型相对应的表来进行身份身份验证。

  如果您只是扩展或替换Django的用户模型,则只需要在设置中指定Auth_user_model作为模型,然后查看官方网站的教程Web链接。

  如果您需要更灵活地更改认证过程,则需要自定义身份验证后端。

  第一个构建学生,分区,课程,stu_info表

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

  1.第一种方法是将其添加为上一个方法。应该注意的是,外键的值必须是关联表中存在的存在。

  2.第二种方法是属性分配的方法,因为我们具有模型类中部门的属性,并且该属性的对象的类型必须是部门表类型的实例对象

  访谈与对象相关的对象:

  我们具有定义学生类别类别的部门的属性,因此,当我们访问它时,我们可以直接找到可以通过Student.Deppartment的形式直接找到学生附属学院的大学。

  那么,如果您拜访访问一所大学的学生时我们也想改变呢?

  访谈与对象相关的对象:

  您可以在定义期间设置相关的_name参数,以涵盖foo_set的名称。

  clear()将所有对象集中在关联对象

  多桌查询----交叉关系查询:

  Django提供了一种强大而直观的方式来“处理”查询中相关关系。它会自动帮助您处理后台加入。如果您想跨越关系,则只需要使用关联的模型字段的名称并使用双重字段的行进行分开,直到您想要的字段:

  它也可以反向起作用。要引用“反向”关系,您只需要使用模型的小写字母的名称即可。

  结论:以上是相关内容的摘要答案,回答了Django的其他表格类别如何由首席CTO注释。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?