# 一、关系 ## 1.1 一对一的关系 ``` 字段名称 = models.OneToOneField(to,on_delete) ``` `to`指要参考的模型名称(数据表名称) `on_delete`指在删除(父)表记录时,(子)表的动作 反向关系 假设user表为主表,userinfo为从表,现在有以下代码: ```python users = User.objects.all() ``` 现在得到了主表中的所有数据,但是在模板中如果要访问从表记录的话,在`Django`中称为反向关系,因为你现在要得到从表中的记录,也就是说最终拿到的是从表中的记录,它是按拿到的最终的结果来说。 访问反向关系 ```python object.模型名称.字段名称 ``` > 模型名称为小写字母 如`onetoone.html`中访问记录的HTML代码如下: ```html {% for user in users %} 姓名:{{ user.username }} 岗位:{{ user.userinfo.occupation}} {% endfor %} ``` 访问正向关系 ``` object.关系名称.字段名称 ``` ```python class UserInfo(models.Model): # 0为男,1为女,2为保密 sex = models.CharField(max_length=1) # 0为未婚,1为已婚,2为保密, maritalstatus = models.CharField(max_length=1) monthlyincome = models.DecimalField(max_digits=8,decimal_places=2) occupation = models.CharField(max_length=30) # 外键字段,最终形成字段名称为:指定名称_id,如下案例将形成: user_id # 该名称在模型中严格称为关系名称,在访问正向关系时使用 user=models.OneToOneField(User,on_delete=models.CASCADE) ``` ![1690430509231.png][1] [1]: https://www.63zi.com/usr/uploads/2024/11/2093093737.png Loading... # 一、关系 ## 1.1 一对一的关系 ``` 字段名称 = models.OneToOneField(to,on_delete) ``` `to`指要参考的模型名称(数据表名称) `on_delete`指在删除(父)表记录时,(子)表的动作 反向关系 假设user表为主表,userinfo为从表,现在有以下代码: ```python users = User.objects.all() ``` 现在得到了主表中的所有数据,但是在模板中如果要访问从表记录的话,在`Django`中称为反向关系,因为你现在要得到从表中的记录,也就是说最终拿到的是从表中的记录,它是按拿到的最终的结果来说。 访问反向关系 ```python object.模型名称.字段名称 ``` > 模型名称为小写字母 如`onetoone.html`中访问记录的HTML代码如下: ```html {% for user in users %} <p>姓名:{{ user.username }}</p> <!-- user.userinfo.occupation 就是反向关系--> <p>岗位:{{ user.userinfo.occupation}}</p> {% endfor %} ``` 访问正向关系 ``` object.关系名称.字段名称 ``` ```python class UserInfo(models.Model): # 0为男,1为女,2为保密 sex = models.CharField(max_length=1) # 0为未婚,1为已婚,2为保密, maritalstatus = models.CharField(max_length=1) monthlyincome = models.DecimalField(max_digits=8,decimal_places=2) occupation = models.CharField(max_length=30) # 外键字段,最终形成字段名称为:指定名称_id,如下案例将形成: user_id # 该名称在模型中严格称为关系名称,在访问正向关系时使用 user=models.OneToOneField(User,on_delete=models.CASCADE) ``` ![1690430509231.png][1] [1]: https://www.63zi.com/usr/uploads/2024/11/2093093737.png 最后修改:2024 年 11 月 09 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏